使用 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(_:) 变换不需要改变数组的类型 - 例如,它也可以用于将 Ints 的数组乘以 2:

let numbers = [1, 2, 3, 4, 5]
let numbersTimes2 = numbers.map {$0 * 2}
print(numbersTimes2) // [2, 4, 6, 8, 10]