原創文章,歡迎轉載。轉載請註明:關東昇的博客 php
閉包表達式能夠做爲函數的參數傳遞,若是閉包表達式很長,就會影響程序的可讀性。尾隨閉包是一個書寫在函數括號以後的閉包表達式,函數支持將其做爲最後一個參數調用。java
下面咱們來看一個示例代碼:微信
func calculate(opr: String, funN:(Int, Int) -> Int) { //最後一個參數funN是(Int,Int)-> Int函數類型,funN能夠接收閉包表達式 switch (opr) { case "+" : print("10 + 5 = \(funN(10,5))") default: print("10 - 5 = \(funN(10,5))") } } calculate("+", funN: {(a: Int, b: Int) -> Int in return a + b }) //調用 calculate("+"){(a: Int, b: Int) -> Int in return a + b } //調用,這種形式就是尾隨閉包 calculate("+") { $0 + $1 } //調用,這種形式就是尾隨閉包
須要注意的是,閉包必須是參數列表的最後一個參數,若是calculate函數採用以下形式定義:閉包
func calculate(funN:(Int, Int) -> Int, opr:String) {函數
...網站
}spa
因爲閉包表達式不是最後一個參數,那麼調用calculate函數就不能使用尾隨閉包寫法的。.net
歡迎關注關東昇新浪微博@tony_ 關東昇。
關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程信息
更多精品iOS、Cocos、移動設計課程請關注智捷課堂官方網站:http://www.zhijieketang.com
智捷課堂論壇網站:http://51work6.com/forum.php設計