小编jak*_*ker的帖子

为什么速记参数名称$ 0返回所有参数的元组?

我试图定义一个可以保存闭包的变量,并使用Swift的简写参数名称遇到一些困难.请使用以下代码段:

var returnAString: (String, String) -> String
returnAString = { return $0 }
Run Code Online (Sandbox Code Playgroud)

这给了我编译错误'(String,String)'不能转换为'String'.当我修改闭包返回一个带有第一个参数值的字符串时,我在元组中返回两个参数值.

println(returnAString("1", "2")) // Prints "(1, 2)"
Run Code Online (Sandbox Code Playgroud)

但是,如果我修改闭包以打印第二个参数,则按预期打印正确的参数.

returnAString = { $1 }
println(returnAString("1", "2")) // Prints "2"
Run Code Online (Sandbox Code Playgroud)

我有种感觉,我在这里做了一些有点傻事,但我找不到任何解释为什么会发生这种情况.

swift

8
推荐指数
1
解决办法
1848
查看次数

Angular 2.0 - @ViewQuery和@Query之间有什么区别

根据我在Angular 2文档中所读到的内容QueryList,@Query应该允许将子组件的引用注入给定组件.

使用@QueryView我设法获得对子DOM元素的引用,如下所示:

// Parent component's template
<my-component #test>

// Parent component
class ParentComponent {
  constructor(@Query('test') child: QueryList<any>) {...}
}
Run Code Online (Sandbox Code Playgroud)

我希望@Query可以返回匹配的组件而不是DOM元素,但我还没有设法让它工作,也没有找到任何表明这样的文档.

这两个装饰器有什么区别?

typescript angular

7
推荐指数
1
解决办法
6230
查看次数

KTables 如何获得它们的初始值?

我最近一直在研究 Kafka Streams API,但在完全理解 KTables 时遇到了一些麻烦。我想我理解一般概念,但我在一些细节上挣扎。

在我的示例应用程序中,我获取一堆价格,然后使用 Kafka Streaming API 为压缩的Kafka 主题 ( Topic-A )生成每个产品的平均价格。我有第二项服务,我想对这些平均价格更新做出反应。所以在第二个服务中,我创建了一个KTableover Topic-A,我可以成功查询它的存储。

我的目标是让第二个服务流程实时响应这些平均价格,而且还可以按需访问每个产品的最新价值。我相信我可以使用 KTable 和 Store 来做到这一点。

起初,我相信:

  • KTable 由本地存储(RocksDB 实例)支持
  • 当 KTable 被初始化时,它会消耗整个Topic-A来构建它的 KTable

然而,似乎 KTables 是(或可以是?)由压缩的 change-log 支持

  1. 这是否意味着在初始化时,KTable 只需要为每个键消费最新的记录?

  2. 如果我运行第二个服务的多个实例,KTables 会共享更改日志吗?我想如果实例数量增加/减少,实例将需要更新它们的本地状态以考虑来自更多/更少分区的数据。

  3. 使用 GlobalKTable 会为我提供每个实例中可用的所有 K/V 对吗?

java apache-kafka apache-kafka-streams

2
推荐指数
1
解决办法
954
查看次数