爲什麼lazy
在這裏使用?Swift中的懶惰
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
}
}
這個擴展需要一個轉換函數返回一個可選的,並且只返回值的數組,並沒有轉化爲無
爲什麼不直接使用self.map(transform)
?這裏需要懶惰嗎?
順便說一句,'flatMap (transform:Generator.Element - > U?) - > [U]'現在可以在Swift 2標準庫中使用了:) – jtbandes