函式轉Closure的步驟:

  1. 刪除關鍵詞func (刪除函式名稱)
  2. 把參數跟回傳值移到大括號中
  3. 加入in

沒有參數的函式

func hi(){
      "hello everybody"
}
hi()    
//印出 "hello everybody"

沒有參數的函式->轉Closure範例如下:

let hiClosure = {
    "hello everybody"
}
hiClosure()
//印出 "hello everybody"

有參數的函式

func eat(foodName:String){
    "I want to have \(foodName)"
}
eat(foodName: "apple")  
//印出 "I want to have 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)  
//輸出 ”11"

多參數的函式->轉Closure範例如下:

let addClourse = {
    (number1:Int, number2:Int) -> Int in
    let result = number1 + number2
    return result
}
addClourse(3, 8)   
//輸出 ”11"

練習:請將下面的Multiply函式轉換成Closure

func multiply(number1:Int, number2:Int) ->String{
    return "\(number1) * \(number2) = \(number1 * number2)"
}
multiply(number1: 5, number2: 7)
//輸出"35"

解答

let multiplyClosure = {
    (number1:Int, number2:Int) ->String in
    return "\(number1) * (numer2) = \(number1 * number2)"
}
multiplyClosure(5,7)
//輸出"35"

results matching ""

    No results matching ""