Swift 學習筆記

2021-09-19 20:41:10 字數 685 閱讀 6440

##函式的閉包

###函式閉包的好處

利用上下文推斷引數和返回值型別

隱式返回單表示式閉包,即單表示式閉包可以省略 return 關鍵字

引數名稱縮寫

尾隨閉包語法

###閉包的寫法

###根據上下文推斷型別

因為排序閉包函式是作為 sorted(by:) 方法的引數傳入的,swift 可以推斷其引數和返回值的型別。sorted(by:) 方法被乙個字串陣列呼叫,因此其引數必須是 (string, string) -> bool 型別的函式。這意味著 (string, string) 和 bool 型別並不需要作為閉包表示式定義的一部分。因為所有的型別都可以被正確推斷,返回箭頭(->)和圍繞在引數周圍的括號也可以被省略:

reversednames = names.sorted(by: )

實際上,通過內聯閉包表示式構造的閉包作為引數傳遞給函式或方法時,總是能夠推斷出閉包的引數和返回值型別。這意味著閉包作為函式或者方法的引數時,你幾乎不需要利用完整格式構造內聯閉包。

儘管如此,你仍然可以明確寫出有著完整格式的閉包。如果完整格式的閉包能夠提高**的可讀性,則我們更鼓勵採用完整格式的閉包。而在 sorted(by:) 方法這個例子裡,顯然閉包的目的就是排序。由於這個閉包是為了處理字串陣列的排序,因此讀者能夠推測出這個閉包是用於字串處理的。

swift學習筆記

1 值永遠不會被隱式轉換為其他型別。如果你需要把乙個值轉換成其他型別,請顯式轉換。let label the width is let width 94 let widthlabel label string width could not find an overload for that acc...

Swift學習筆記

常量 let product constant iphone6 變數 var product var ipad 不需要宣告變數型別,會根據右側的值推導左側變數的型別 可以多個變數定義在一起 var x1 30,x2 abc 可以精確指定變數的型別 var x1 int 27 指定x1為int型 pr...

swift學習筆記

頁面之間的跳轉 從乙個viewcontroller跳轉到另外乙個viewcontroller使用如下函式 1 override func prepareforsegue segue uistoryboardsegue,sender anyobject?12 1314 其中segue就是鏈結兩個vie...