函式轉Closure的步驟:
- 刪除關鍵詞func (刪除函式名稱)
- 把參數跟回傳值移到大括號中
- 加入in
沒有參數的函式
func hi(){
"hello everybody"
}
hi()
沒有參數的函式->轉Closure範例如下:
let hiClosure = {
"hello everybody"
}
hiClosure()
有參數的函式
func eat(foodName:String){
"I want to have \(foodName)"
}
eat(foodName: "apple")
有參數的函式->轉Closure範例如下:
let eatClosure = {
(foodName:String) in
"I want to have \(foodName)"
}
eatClosure("apple")
多參數的函式
func add(number1:Int, number2:Int) ->Int{
let result = number1 + number2
return result
}
add(number1: 3, number2: 8)
多參數的函式->轉Closure範例如下:
let addClourse = {
(number1:Int, number2:Int) -> Int in
let result = number1 + number2
return result
}
addClourse(3, 8)
練習:請將下面的Multiply函式轉換成Closure
func multiply(number1:Int, number2:Int) ->String{
return "\(number1) * \(number2) = \(number1 * number2)"
}
multiply(number1: 5, number2: 7)
解答
let multiplyClosure = {
(number1:Int, number2:Int) ->String in
return "\(number1) * (numer2) = \(number1 * number2)"
}
multiplyClosure(5,7)