我在 Swift 中有这个函数。
func *<T1:Sequence, T2:Sequence>(lhs: T1,rhs : T2) ->
[(T1.Iterator.Element,T2.Iterator.Element)]
{
let product = lhs.flatMap({ x in rhs.lazy.map{y in (x,y)}})
return product
}
我希望它成为一种惰性求值方式。我知道可以使用lhs.lazy.flatmap,但返回类型应该是什么呢?或者是否有更好的或其他方法来实现类似的功能?
lhs.lazy.flatMap
中选中flatMap
,一切就会显现。或者只需运行print(type(of: lhs.flatMap({ x in rhs.lazy.map{y in (x,y)}})))
。 - Alexander