我的任务是编写一个增加值的lambda函数,但我必须使用value = 0 capture-specifier.我正在考虑以下功能:
auto lambda = [value = 0]{return ++value}
Run Code Online (Sandbox Code Playgroud)
调用此函数时,每次都必须给出递增的值.但我知道这个实现是错误的,因为它是通过值传递的.我怎么能用C++ 14做到这一点?
我有一个非常简单的原型:
message ChargeCardResponse
{
bool success = 1;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试将其解析为 String 时,我从 JsonFormat.printer().print() 得到一个非常奇怪的输出,这取决于成功值。
ChargeCardResponse.Builder builder = ChargeCardResponse.newBuilder();
System.out.println(JsonFormat.printer().print(builder.setSuccess(true).build()));
Run Code Online (Sandbox Code Playgroud)
输出:{“成功”:真}
ChargeCardResponse.Builder builder2 = ChargeCardResponse.newBuilder();
System.out.println(JsonFormat.printer().print(builder2.setSuccess(false).build()));
Run Code Online (Sandbox Code Playgroud)
输出: {}
因此,如果我为具有成功属性的打印机提供 false 值,则无法生成 JSON 格式。我究竟做错了什么?有谁能证实一下吗?
我有以下日志记录结构:
[STDERR] 2018-07-09 11:06:16.003 INFO some_pkg/main.go:232 Logging message 1 {"pid": 8842, "process": "some_process"}
[STDERR] 2018-07-09 11:06:16.006 DEBUG some_pkg/main.go:291 Logging message 2 {"pid": 8842, "process": "other_process"}
[STDERR] 2018-07-09 11:06:16.009 INFO some_pkg/main.go:345 Logging message 3 {"pid": 8842, "process": "some_process"}
Run Code Online (Sandbox Code Playgroud)
您可以看到此日志记录片段中有五种类型的信息。有日期/时间、日志级别、发生次数、消息和 JSON 字段([STDERR] 字段除外)。这意味着我的日志记录结构中有五列。我想添加一个带有关键pid和进程的新列(来自 JSON)。我应该如何使用 ZAP 编码器和配置来做到这一点?我在 ZAP 文档中没有找到解决方案。
我使用以下代码向日志记录添加字段:
logger = logger.With(zap.Field{Key: "pid", Type: zapcore.Int64Type, Integer: int64(os.Getpid())})
但是 pid 字段的值转到 JSON(您可以在上面看到的内容),我希望在新列中看到它。ZAP 中有一种简单的方法可以做到这一点?
我想要的结构如下与前面的例子:
[STDERR] 2018-07-09 11:06:16.003 INFO some_pkg/main.go:232 Logging message 1 8842 some_process
[STDERR] 2018-07-09 11:06:16.006 DEBUG some_pkg/main.go:291 …Run Code Online (Sandbox Code Playgroud) 我使用golang elastic 5 API在ElasticSearch中运行查询.我使用searchResult.TotalHits()检查命中数,它给了我一个大数(超过100),但当我尝试迭代命中它只给出10个实体.此外,当我检查len(searchResult.Hits.Hits)变量时,我得到10.
当我选择少于10个实体时,我尝试了不同的查询,并且效果很好.
query = elastic.NewBoolQuery()
ctx := context.Background()
query = query.Must(elastic.NewTermQuery("key0", "term"),
elastic.NewWildcardQuery("key1", "*term2*"),
elastic.NewWildcardQuery("key3", "*.*"),
elastic.NewRangeQuery("timestamp").From(fromTime).To(toTime),
)
searchResult, err = client.Search().Index("index").
Query(query).Pretty(true).Do(ctx)
fmt.Printf("TotalHits(): %v", searchResult.TotalHits()) //It gives me 482
fmt.Printf("length of the hits array: %v", len(searchResult.Hits.Hits)) //It gives 10
for _, hit := range searchResult.Hits.Hits {
var tweet Tweet
_ = json.Unmarshal(*hit.Source, &tweet)
fmt.Printf("entity: %s", tweet) //It prints 10 entity
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?SearchResult中是否有批次或可能是什么解决方案?