我试图定义一个可以保存闭包的变量,并使用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)
我有种感觉,我在这里做了一些有点傻事,但我找不到任何解释为什么会发生这种情况.
根据我在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元素,但我还没有设法让它工作,也没有找到任何表明这样的文档.
这两个装饰器有什么区别?
我最近一直在研究 Kafka Streams API,但在完全理解 KTables 时遇到了一些麻烦。我想我理解一般概念,但我在一些细节上挣扎。
在我的示例应用程序中,我获取一堆价格,然后使用 Kafka Streaming API 为压缩的Kafka 主题 ( Topic-A )生成每个产品的平均价格。我有第二项服务,我想对这些平均价格更新做出反应。所以在第二个服务中,我创建了一个KTableover Topic-A,我可以成功查询它的存储。
我的目标是让第二个服务流程实时响应这些平均价格,而且还可以按需访问每个产品的最新价值。我相信我可以使用 KTable 和 Store 来做到这一点。
起初,我相信:
然而,似乎 KTables 是(或可以是?)由压缩的 change-log 支持。
这是否意味着在初始化时,KTable 只需要为每个键消费最新的记录?
如果我运行第二个服务的多个实例,KTables 会共享更改日志吗?我想如果实例数量增加/减少,实例将需要更新它们的本地状态以考虑来自更多/更少分区的数据。
使用 GlobalKTable 会为我提供每个实例中可用的所有 K/V 对吗?