《從零開始學Swift》學習筆記(Day 23)——尾隨閉包

原創文章,歡迎轉載。轉載請註明:關東昇的博客  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_ 關東昇。
關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程信息
 
更多精品iOSCocos、移動設計課程請關注智捷課堂官方網站:http://www.zhijieketang.com
智捷課堂論壇網站:http://51work6.com/forum.php
設計

相關文章
相關標籤/搜索