使用 map() 转换数组的元素
由于 Array
符合 SequenceType
,我们可以使用 map(_:)
使用 (A) throws -> B
类型的闭包将 A
数组转换为 B
数组。
例如,我们可以使用它将 Int
的数组转换为 String
的数组,如下所示:
let numbers = [1, 2, 3, 4, 5]
let words = numbers.map { String($0) }
print(words) // ["1", "2", "3", "4", "5"]
map(_:)
将遍历数组,将给定的闭包应用于每个元素。该闭包的结果将用于使用转换后的元素填充新数组。
由于 String
有一个接收 Int
的初始化器,我们也可以使用这个更清晰的语法:
let words = numbers.map(String.init)
map(_:)
变换不需要改变数组的类型 - 例如,它也可以用于将 Int
s 的数组乘以 2:
let numbers = [1, 2, 3, 4, 5]
let numbersTimes2 = numbers.map {$0 * 2}
print(numbersTimes2) // [2, 4, 6, 8, 10]