【发布时间】:2015-07-05 14:35:57
【问题描述】:
这里为什么使用lazy?
extension SequenceType {
func mapSome<U>(transform: Generator.Element -> U?) -> [U] {
var result: [U] = []
for case let x? in lazy(self).map(transform) {
result.append(x)
}
return result
}
}
这个扩展接受一个转换函数,该函数返回一个可选值,并返回一个仅包含未转换为 nil 的值的数组
为什么不直接使用 self.map(transform) ?这里需要懒惰吗?
【问题讨论】:
-
顺便说一句,
flatMap<U>(transform: Generator.Element -> U?) -> [U]现在可以在 Swift 2 标准库中使用 :)
标签: swift lazy-evaluation swift2