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