Constant and Variable Parameters

Function裡的參數預設都是常數,因此若是在function裡想要改變傳入的參數時會出現compile error。不過有時候我們還是會有需要修改的時候。我們可以在裡面新增一個變數並將參數傳入以便於修改,但若今天有很多參數時這個方法就不是那麼好用。Swift提供了設定變數參數的方式讓程式碼更精簡。方法就是在定義參數時前面加入var:

func sayHi(var name: String) -> String{

    name = "Hello " + name

    return name

}

let myName = "Eason"

let greetingName = sayHi(myName)

// myName 並不會因為sayHi的呼叫而改變值

 

In-Out Parameters

上面提到的變數參數,改變的只有function內部,不會影響原來的值。若我們想要直接改變原來的值,就要宣告in-out parameter。 宣告方式也是在參數前面加一個keyword,inout:

func sayHi(inout name: String) -> String{

    name = "Hello " + name

    return name

}

var myName = "Eason"

let greetingName = sayHi(&myName)

呼叫的時候跟variable parameter不同的是,參數前面要加&。

當執行完sayHi之後,myName也跟著改變了。

(呼叫時我們代入的一定要是變數,不然會有問題)。

 

要注意的是,in-out parameter不能設定初始值,且variadic parameter不能設為inout parameter。另外,當我們將參數設定為inout時,就不能再加var或是let了。

arrow
arrow
    全站熱搜

    Eason 發表在 痞客邦 留言(0) 人氣()