Swift - 閉包
閉包的本質是一個函式
閉包 與 OC中的Block相似
來看這樣一段程式碼
var arr:[Int] = []
for _ in 0..<100{
arr.append(random()%1000)
}
func biggerNumberFirst(a:Int , _ b:Int) -> Bool{
return a > b
}
arr.sort(biggerNumberFirst)
使用閉包
arr.sort({
(a:Int , b:Int) -> Bool in
return a > b
})
閉包的化簡
並不一定非要去使用最簡單的寫法,有時候會失去程式的可讀性,我們要在程式碼的簡潔性和易讀性找到一個平衡點
1.複雜的閉包最好還是清楚的寫出變數名 和返回值型別
arr.sort({(a:Int , b:Int) -> Bool in return a > b})
2.簡單的閉包就使用此種
arr.sort({ a , b in return a > b})
3
arr.sort({ a , b in a > b})
4 如果沒有給變數命名 swift自動命名變數名 $0 $1 $2....型別肯定是Int(因為sort函式的引數是Int型別)返回值一定是Bool型
arr.sort({ $0 > $1})
5 >(大於號) 本身就是一個函式
arr.sort(>)
結尾閉包
如果函式是作為最後一個引數,那麼就可以使用結尾閉包
arr.sort(){(a:Int , b:Int) -> Bool in return a > b}
一般這樣寫易讀性較強
arr.sort(){(a:Int , b:Int) -> Bool in
return a > b
}
相關文章
- Swift 閉包Swift
- Swift,閉包Swift
- Swift-閉包Swift
- Swift-逃逸閉包、自動閉包Swift
- swift 閉包傳值Swift
- 深入理解swift的閉包Swift
- Swift iOS : 自動閉包autoclosureSwiftiOS
- OC與Swift閉包對比總結Swift
- Swift iOS : 閉包的一個應用SwiftiOS
- Swift2.0語言教程之閉包Swift
- Swift開發基礎06-閉包Swift
- Swift4.0 sorted(by:)函式理解(閉包$理解)Swift函式
- Swift 閉包中的記憶體洩漏Swift記憶體
- [譯] Swift 閉包和代理中的保留週期Swift
- 在 Swift 中使用閉包實現懶載入Swift
- swift 3.0 閉包,專案使用例子,結合GCDSwiftGC
- Swift解決【閉包引起的迴圈強引用】Swift
- Swift 1.1語言第7章 函式和閉包Swift函式
- Swift 中如何利用閉包實現非同步回撥?Swift非同步
- iOS學習筆記42 Swift(二)函式和閉包iOS筆記Swift函式
- Swift學習筆記第五篇(閉包和列舉)Swift筆記
- Swift3.0 -- 閉包的迴圈引用與OC的對比Swift
- swift1.2語言函式和閉包函式介紹Swift函式
- 閉包
- 閉包 | 淺談JavaScript閉包問題JavaScript
- 【集合論】關係閉包 ( 關係閉包求法 | 關係圖求閉包 | 關係矩陣求閉包 | 閉包運算與關係性質 | 閉包複合運算 )矩陣
- 1天學會swift2 0語法(3)函式 和 閉包Swift函式
- 《從零開始學Swift》學習筆記(Day 23)——尾隨閉包Swift筆記
- PHP 閉包PHP
- JavaScript閉包JavaScript
- Golang閉包Golang
- golang 閉包Golang
- JavaScript 閉包JavaScript
- 理解“閉包”
- 理解閉包
- lisp 閉包Lisp
- JavaScript - 閉包JavaScript
- javascript閉包—圍觀大神如何解釋閉包JavaScript