《從零開始學Swift》學習筆記(Day 19)——函式引數傳遞

智捷關東昇發表於2016-03-15

《從零開始學Swift》學習筆記(Day 19)——函式引數傳遞 原創文章,歡迎轉載。轉載請註明:關東昇的部落格

  函式的語法格式如下:
    func 函式名(引數列表) -> 返回值型別 {
    語句組
     return 返回值
    }
  關鍵字是func。
  多個引數列表之間可以用逗號(,)分隔,也可以沒有引數。
  使用箭頭“->”指示返回值型別。返回值有單個值和多個值。如果函式沒有返回值,則“-> 返回值型別”部分可以省略。
  如果函式有返回值,就需要在函式體最後使用return語句;如果沒有返回值,則函式體中可以省略return語句。
  函式定義示例程式碼如下:

func rectangleArea(width:Double, height:Double) -> Double {
    let area = width * height
    return area        
}

print("320x480的長方形的面積:\(rectangleArea(320, height: 480))")

傳遞引數

  介紹幾種不同形式的引數。

  1、使用外部引數名
  為每個引數提供一個可以在函式外部使用的名稱,稱為外部引數名,修改rectangleArea函式的定義如下:

func rectangleArea(W width:Double, H height:Double) -> Double {
    let area = width * height
    return area

}

  在區域性引數名之前給一個“外部引數名”,用空格分隔。定義程式碼中的W和H就是外部引數名。呼叫程式碼如下:

print("320x480的長方形的面積:(rectangleArea(W:320, H:480))")

  如果我們提供了外部引數名,那麼在函式呼叫時,必須使用外部引數名,所以W和H不能省略。

  2、省略外部引數名
  Swift 2.0提供省略外部引數名可能,在定義函式時,使用下劃線(_)表示外部引數名,示例程式碼如下:

func rectangleArea(width:Double, _ height:Double) -> Double {
    let area = width * height
    return area

}

  這樣函式在呼叫時就可以省略外部引數名,程式碼如下:

print("320x480的長方形的面積:(rectangleArea(320, 480))")

  在定義函式時第一個引數不需要使用下劃線(),預設第一個引數名是省略的,其他引數名要想省略則需要使用下劃線()符號。

  3、 引數預設值
  在定義函式的時候可以為引數設定一個預設值,當呼叫函式的時候可以忽略該引數。看下面的一個示例:

func makecoffee(type : String = "卡布奇諾") -> String {
    return "製作一杯\(type)咖啡。"

}

  在呼叫的時候,如果呼叫者沒有傳遞引數,則使用預設值。呼叫程式碼如下:

let coffee1 = makecoffee("拿鐵")

let coffee2 = makecoffee()

  最後輸出結果如下:
    製作一杯拿鐵咖啡。
    製作一杯卡布奇諾咖啡。

  4、可變引數
  Swift中函式的引數個數可以變A化,它可以接受不確定數量的輸入型別引數,它們具有相同的型別。我們可以通過在引數型別名後面加入(...)的方式來指示這是可變引數。
下面看一個示例:

func sum(numbers: Double...) -> Double {
    var total: Double = 0
    for number in numbers {
    total += number
    }
    return total

}

  下面是兩次呼叫sum函式程式碼:

sum(100.0, 20, 30)

sum(30, 80)

  可以看到每次傳遞引數的個數是不同的。

歡迎關注關東昇新浪微博@tony_關東昇。 關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程資訊

enter image description here

更多精品iOS、Cocos、移動設計課程請關注智捷課堂官方網站:http://www.zhijieketang.com 智捷課堂論壇網站:http://51work6.com/forum.php

相關文章