Tại sao lazy
được sử dụng ở đây?Tính linh hoạt trong 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
}
}
phần mở rộng này có một chức năng chuyển đổi mà trả về một tùy chọn, và trả về một mảng chỉ những giá trị mà không được biến thành con số không
Tại sao không chỉ cần sử dụng self.map(transform)
? là sự lười biếng cần thiết ở đây?
Nhân tiện, 'flatMap (transform: Generator.Element -> U?) -> [U] 'hiện có sẵn trong thư viện chuẩn Swift 2 :) – jtbandes