簡寫closure步驟:
- 已經能夠確認參數跟回傳值的型別的話,可以刪除Closure裡面參數跟回傳值的型別
- 程式碼只有一行的情況下,可以刪除return
- 用$0、$1、$2…等。代替傳進來的參數名稱。
- 如果是最後或唯一的參數,可把Closure移後至參數小括號外。
- 如果是唯一的參數,可省略參數小括號。
範例程式:
let addClosure:(Int,Int) -> (Int) = {
(number1:Int, number2:Int) -> Int in
let result = number1 + number2
return result
}
addClosure(1,2)
簡化後的程式碼:
let addClosure:(Int,Int) -> (Int) = {$0 + $1}
addClosure(1,2)
//1.去型別Int, Int ->Int
//2.刪除let result, return result
//3.number1, number2 用$0, $1取代