使用 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]