对于数组中的每个值进行转换操作是一个非常常见的操作
传统写法:
var squared: [Int] = []
for fib in fibs {
squared.append(fib * fib)
}
squared // [0, 1, 1, 4, 9, 25]”
Swift 数组拥有 map 方法,这个方法来自函数式编程的世界。下面的例子使用了 map 来完成同样的操作
Swift 数组拥有 Map 方法,这个方法来自于函数式编程。实现为:
extension Array {
func mapElement<T>(_ transform: (Element) -> T) -> [T] {
var result: [T] = []
result.reserveCapacity(count)
for x in self {
result.append(transform(x))
}
return result
}
}
使用达到同样的功能:
let squares = squared.mapElement{fi in fi * fi}