在讀到函式部分的語法時,就已經被有點變化的函式給弄的天旋地轉,遇到 closure 時,才覺得這也太過精簡了吧!!都要只剩下標點符號了
###function V.S. closure
function 跟 closure 的差別在於:去除掉func 以及函式名稱,將參數以及回傳型別搬到 {} 裡面,中間加上 in。大概就是無名的函式
先以最簡單的無任何參數的函式為例:
func printMyWords() {
print(“Hello World”)
}
printMyWords()
將它改成closure就會像這樣:
let printMyWords = { () -> () in
print(“Hello World”)
}
printMyWords()
去除了func以及名稱,closure需要指派給變數或常數,以此為例,closure在這裡被指派給了常數printMyWords。
而因為沒有參數也沒有回傳值,又可以省略成以下:
let printMyWords = {
print(“Hello World”)
}
printMyWords()
參考資料:The Swift Programming Language、Swift 起步走、彼得潘的 Swift 程式設計入門