Swift標(biāo)準(zhǔn)數(shù)組的三個高階函數(shù)

Swift的標(biāo)準(zhǔn)數(shù)組支持三個高階函數(shù):mapfilterreduce,它們使得對數(shù)組的一些具體操作更加簡潔、優(yōu)雅、高效。

這里我們首先創(chuàng)建一個簡單的數(shù)組:

let money = [10, 20, 30, 45, 32]```
***
####map
轉(zhuǎn)換,將每個數(shù)組元素通過某個方法進(jìn)行轉(zhuǎn)換,得到一個能更方便我們使用的新的數(shù)組。

比如:把上面的money數(shù)組轉(zhuǎn)換為`["10元", "20元", "30元", "45元", "32元"]`以供UI顯示 。

var mappedArray = money.map({"($0)元"})```
這里給map傳入一個最簡形式的閉包來對原始數(shù)組money中的每一個元素進(jìn)行操作。
如果不使用map函數(shù),那么常規(guī)方式就是創(chuàng)建一個新數(shù)組,然后遍歷原始數(shù)組money,在遍歷過程中對money的每一個元素進(jìn)行操作,然后加入到新數(shù)組中,哪種方式更加優(yōu)(zhuang)雅(13)一目了然。


filter

過濾,對數(shù)組中的元素按照某種規(guī)則進(jìn)行過濾,得到一個每個元素都符合此規(guī)則的新數(shù)組。

比如:篩選出money數(shù)組中大于30的所有元素 。

var filterArray = money.filter({$0 > 30})```
這里給filter傳入一個最簡形式的閉包作為篩選條件。
***
####reduce
計算,把數(shù)組元素通過某種運算組合計算為一個值。

比如:把對money數(shù)組中的元素求和。

var sum = money.reduce(0, {$0 + $1})//第一個參數(shù)是設(shè)置的初始值,$0表示計算后的結(jié)果, $1表示數(shù)組中的每一個元素```

注:以上函數(shù)中使用的閉包都忽略了參數(shù)名,并且使用默認(rèn)參數(shù),返回類型隱式推斷,對閉包不熟悉的右轉(zhuǎn)百度,不謝~。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容