我需要一个函数来返回各种组合生成器函数(如过滤器和映射)的惰性生成器。例如,如果我想应用lazy.filter().map()
代码如下所示:
// Simplified
typealias MyComplexType = Int
typealias MyComplexCollection = [MyComplexType]
func selection() -> LazyMapCollection<LazyFilterCollection<MyComplexCollection>, Int> {
let objects:MyComplexCollection = [1, 2, 3, 4, 5, 6]
let result = objects.lazy.filter({$0 < 4}).map({$0 * 10})
return result
}
for obj in someObjects() {
print(obj)
}
有没有更通用的方法来指定LazyMapCollection<LazyFilterCollection<MyComplexCollection>, Int>
? 我试过LazyGenerator<MyComplexCollection>
了,但出现类型不兼容错误。链接更多惰性函数会使类型更加复杂。更好和更适合我的需要是有一个类似于 just 的类型LazySomething<MyComplexType>
。