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

智捷關東昇發表於2016-03-15

原創文章,歡迎轉載。轉載請註明:關東昇的部落格
   閉包表示式可以作為函式的引數傳遞,如果閉包表示式很長,就會影響程式的可讀性。尾隨閉包是一個書寫在函式括號之後的閉包表示式,函式支援將其作為最後一個引數呼叫。
  下面我們來看一個示例程式碼:

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) {
    ...

}

  由於閉包表示式不是最後一個引數,那麼呼叫calculate函式就不能使用尾隨閉包寫法的。

歡迎關注關東昇新浪微博@tony_關東昇。 關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程資訊

enter image description here

更多精品iOS、Cocos、移動設計課程請關注智捷課堂官方網站:http://www.zhijieketang.com 智捷課堂論壇網站:http://51work6.com/forum.php

相關文章