iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
自我挑戰組

初入Swift新手村的旅程系列 第 14

Day14 Swift 函數 Function - 2

  • 分享至 

  • xImage
  •  

函數類型

前面有提到,Swift每一個函數都有此特定的類型,因此,開發者也可以像宣告變數那樣,來宣告一個函數,同樣也可以對此進行傳值呼叫等。

// 宣告一個函數變數
var addFunc: (Int, Int) -> Int
// 對函數變數進行傳值
addFunc = {(param: Int, param2: Int) in return param + param2}
// 呼叫函數
addFunc(2, 4)

上面的程式碼對函數變數是採用了閉包的方式,閉包是一段有具體功能的程式碼,in是閉包的關鍵字,有關閉包的內容,後面會說。

var addFunc2: (Int, Int) -> Int
func myFunc13(param: Int, param2: Int) -> Int{
    return param + param2
}
addFunc2 = myFunc13
addFunc2(1, 2)

函數也可以作為另一個函數的參數

// 參數param的類型為函數類型
func myFunc14(param: (Int, Int) -> Int) {
    print(param(2, 4))
}
// 將addFunc函數作為參數傳到myFunc14
myFunc14(param: addFunc)

函數可以作為參數,也可以作為返回值來使用。

// 宣告一個函數變數
var addFunc3: (Int, Int) -> Int
func myFunc15() -> (Int, Int) -> Int {
    return {(param1: Int, param2: Int) in
        return param1 + param2
    }
}
// 使用addFunc3來獲取返回值
addFunc3 = myFunc15()
// 進行呼叫
addFunc3(1,3)

在Swift支持函數嵌套,因此開發者也可以在函數內部再次建立函數。

func myFun16() -> (Int, Int) -> Int {
    func subFun(param1: Int, param2: Int) -> Int {
        return param1 + param2
    }
    return subFun
}

接下來,是閉包的介紹


上一篇
Day13 Swift 函數 Function - 1
下一篇
Day15 Swift 閉包 Closures
系列文
初入Swift新手村的旅程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言