0
我需要一個函數,它返回各種組合生成器函數(如過濾器和映射)的延遲生成器。例如,如果我想申請lazy.filter().map()
代碼如下:通用LazyCollection類型
// 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>
,但我得到類型不兼容性錯誤。鏈接更多的懶惰函數會使得類型更加複雜。更好和更適合我的需求應該是類型只有LazySomething<MyComplexType>
。