swift 常用高階函數(shù)分享
map
var arr = [1, 2, 3] //map函數(shù)是有返回值的,想要arr里面的值map過(guò)去需要arr重新接收新值 arr.map { (a : Int) -> Int in return a * 2 } //這種寫(xiě)法只是尾隨閉包的簡(jiǎn)寫(xiě)。。 arr = arr.map { $0 * 2 }
flatMap
//floatMap函數(shù)可以降維 var arr1 = [[1, 2], [4, 5], [6, 7]] var aaa = arr1.flatMap { $0 } //floatMap函數(shù)去空作用,還會(huì)解包數(shù)據(jù) var arr2 = ["swift", nil, "java"] var bbb = arr2.flatMap { $0 }
filter
//filter 函數(shù)用作對(duì)容器內(nèi)元素進(jìn)行篩選 var arr3 = ["swift", "java", "oc", "python"] arr3 = arr3.filter { guard $0.characters.count > 2 else { return false } return true }
reduce
//reduce 函數(shù)用作對(duì)容器內(nèi)元素進(jìn)行操作,將元素字符串拼接 var arr4 = [2, 3, 4, 5] //arr4.reduce("", { // return $0 == "" ? String($1) : $0 + String($1) //}) //用reduce求和 arr4.reduce(0) { return $0 + $1 } // 將數(shù)組中的每個(gè)字符串用‘,'拼接 let arr5 = ["Objective-C", "Swift", "HTML", "CSS", "JavaScript"] // $0表示計(jì)算后的結(jié)果, $1表示數(shù)組中的每一個(gè)元素 arr5.reduce("", { return $0 == "" ? $1 : $0 + "," + $1 })
所以,Swift 語(yǔ)言的高階函數(shù)以及閉包可以 capture 外部變量的特性,使得代碼邏輯可以以函數(shù)作為主體來(lái)進(jìn)行封裝,這將使得我們的代碼組織更加靈活。
當(dāng)然,如果濫用,這也會(huì)造成代碼組織變得更加混亂。
相關(guān)文章
iOS中使用UIDatePicker制作時(shí)間選擇器的實(shí)例教程
這篇文章主要介紹了iOS中使用UIDatePicker制作時(shí)間選擇器的實(shí)例教程,實(shí)例中未選中的時(shí)間項(xiàng)目會(huì)講解一個(gè)將其變透明的方法,非常給力,需要的朋友可以參考下2016-05-05關(guān)于ios配置微信config出現(xiàn)驗(yàn)簽失敗的問(wèn)題解決
這篇文章主要介紹了關(guān)于ios配置微信config出現(xiàn)驗(yàn)簽失敗的問(wèn)題解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04iOS利用UITableView設(shè)置全屏分隔線(xiàn)的3種方法總結(jié)
這篇文章主要介紹了關(guān)于iOS利用UITableView設(shè)置全屏分隔線(xiàn)的幾種方法的相關(guān)對(duì)比,分析這三種的各自?xún)?yōu)缺點(diǎn),并且分享了設(shè)置UITableView的單元格分割線(xiàn)離屏幕左右的距離為0的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起看看吧。2017-11-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文)
這篇文章主要介紹了Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11iOS自帶動(dòng)畫(huà)效果的實(shí)例代碼
本文給大家分享ios自帶動(dòng)畫(huà)效果的實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2016-12-12iOS開(kāi)發(fā)CGContextRef畫(huà)圖使用總結(jié)
這篇文章主要為大家詳細(xì)介紹了iOS開(kāi)發(fā)CGContextRef畫(huà)圖使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04