Swift Map詳解

Swift Map詳解

Swift Map詳解

先看下map的用法

let numbers = [1,2,3,4]
let result = numbers.map { $0 + 1 }
print(result)  // [2,3,4,5]
 map 方法接受一個閉包作爲參數, 然後它會遍歷整個 numbers 數組,並對數組中每一個元素執行閉包中定義的操作。 相當於對數組中的所有元素做了一個映射。 比如咱們這個例子裏面的閉包是將[1,2,3,4]所有元素都加 1 。 這樣它產生的結果數據就是 [2,3,4,5]。

對用法有一些瞭解之後,我們來看一下 map 的定義:

func map
(@noescape transform: (Self.Generator.Element) throws -> T) rethrows -> [T]

從定義可知map 函數接受一個閉包, 這個閉包的定義是這樣的:

(Self.Generator.Element) -> T

它接受一個Self.Generator.Element 類型的參數, 這個類型代表數組中當前元素的類型。 而這個閉包的返回值,是可以和傳遞進來的值不同的。 比如我們可以這樣:

let stringResult = numbers.map { "組. \($0)" }
// ["組. 1", "組. 2", "組. 3", "組. 4"]

這次我們在閉包裝把傳遞進來的數字拼接到一個字符串中, 然後返回一個組數, 這個數組中包含的數據類型,就是我們拼接好的字符串。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章