Array的常规操作:
var arr = [1, 2, 3, 4]
var arr2 = arr.map{ $0 * 2 }
var arr3 = arr.filter{ $0 % 2 == 0 }
var arr4 = arr.reduce(0) { $0 + $1 }
var arr5 = arr.reduce(0, +)
func double(_ i: Int) -> Int { i * 2 }
var arr = [1, 2, 3, 4]
print(arr.map(double))
var arr = [1, 2, 3]
var arr2 = arr.map { Array.init(repeating: $0,count:$0) }
var arr3 =arr.flatMap { Array.init(repeating:$0, count:$0) }
var arr = ["123", "test", "jack", "-30"]
var arr2 = arr.map { Int($0) }
var arr3 = arr.compactMap { Int($0) }
var arr = [1, 2, 3, 4]
print(arr.map { $0 * 2 })
print(arr.reduce([]) { $0 + [$1 *2] })
print(arr.filter { $0 + [$1 * 2] })
print(arr.reduce([]) { $1 % 2 == 0 ? $0 + [$1] : $0 })
lazy的优化
let arr = [1, 2, 3]
let result = arr.lazy.map {
(i: Int) -> Int in
print("mapping \(i)")
return i * 2
}
print("begin-----")
print("mapped", result[0])
print("mapped", result[1])
print("mapped", result[2])
print("end----")