Swift函數參數名稱(Function Parameter Names)

函數參數名稱(Function Parameter Names)

函數參數都有一個外部參數名(external parameter name)和一個局部參數名(local parameter name)。外部 參數名用于在函數調用時標注傳遞給函數的參數,局部參數名在函數的實現內部使用。

指定外部參數名(Specifying External Parameter Names) 你可以在局部參數名前指定外部參數名,中間以空格分隔:

func someFunction(externalParameterName? localParameterName:Int){

}

someFunction(externalParameterName: 3);

忽略外部參數名(Omitting External Parameter Names)

如果你不想為第二個及后續的參數設置外部參數名,用一個下劃線( _ )代替一個明確的參數名。

func? someFounction(firstParameterName:Int,_? secondParameter:Int){

}

someFounction(3, 4);

默認參數值,你可以在函數體中為每個參數定義默認值。當默認值被定義后,調用這個函數時可以忽略這個參數。

func somefunc(parameterWithDefault:Int = 12){

}

somefunc(6);

somefunc();

可變參數(Variadic Parameters)

一個 可變參數(variadic parameter) 可以接受零個或多個值。函數調用時,你可以用可變參數來指定函數參數 可以被傳入不確定數量的輸入值。通過在變量類型名后面加入 (...) 的方式來定義可變參數。

一個函數最多只能有一個可變參數。

如果函數有一個或多個帶默認值的參數,而且還有一個可變參數,那么把可變參數放在參數表的最后。

常量參數和變量參數(Constant and Variable Parameters)

函數參數默認是常量。試圖在函數體中更改參數值將會導致編譯錯誤。這意味著你不能錯誤地更改參數值。

但是,有時候,如果函數中有傳入參數的變量值副本將是很有用的。你可以通過指定一個或多個參數為變量參

數,從而避免自己在函數中定義新的變量。變量參數不是常量,你可以在函數中把它當做新的可修改副本來使用。

對變量參數所進行的修改在函數調用結束后便消失了,并且對于函數體外是不可見的。變量參數僅僅存在于函數

調用的生命周期中。

輸入輸出參數(In-Out Parameters)

變量參數,正如上面所述,僅僅能在函數體內被更改。如果你想要一個函數可以修改參數的值,并且想要在這些 修改在函數調用結束后仍然存在,那么就應該把這個參數定義為輸入輸出參數(In-Out Parameters)。

定義一個輸入輸出參數時,在參數定義前加 inout 關鍵字。一個輸入輸出參數有傳入函數的值,這個值被函數 修改,然后被傳出函數,替換原來的值。

輸入輸出參數和返回值是不一樣的。上面的 swapTwoInts 函數并沒有定義任何返回值,但仍然修改了 someIn t 和 anotherInt 的值。輸入輸出參數是函數對函數體外產生影響的另一種方式。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 函數是用來完成特定任務的獨立的代碼塊。給一個函數起一個合適的名字,用來標識函數做什么,并且當函數需要執行的時候,這...
    窮人家的孩紙閱讀 816評論 2 1
  • 86.復合 Cases 共享相同代碼塊的多個switch 分支 分支可以合并, 寫在分支后用逗號分開。如果任何模式...
    無灃閱讀 1,444評論 1 5
  • [The Swift Programming Language 中文版]本頁包含內容: 函數是用來完成特定任務的獨...
    風林山火閱讀 529評論 0 0
  • 版本記錄 前言 我是swift2.0的時候開始接觸的,記得那時候還不是很穩定,公司的項目也都是用oc做的,并不對s...
    刀客傳奇閱讀 1,192評論 0 0
  • 現在是凌晨1:49 這一夜我失眠了。一向躺下就睡的如死豬一樣的我,今夜竟然翻來覆去的睡不著。 因為思念。 在那遠方...
    橙子愛可樂噠閱讀 509評論 0 2