常量參數、變量參數和inout參數

默認情況下,如果聲明函數的時候,參數的不指明是變量還是常量,則默認是常量的。如果要在函數中做相應改變參數的操作,則需要在聲明參數的類型。如下:

//將一個十進制轉換爲二進制
func toBinary(var number:Int)->String{
    var result : String = ""
    while number != 0 {
        result = String(number%2) + result
        number /= 2
    }
    return result
}
var number = 10
toBinary(number)//"1010"
number//10

此時,傳入函數的參數的數值不變,說明傳入函數的參數,傳的是一個數值的副本,而不是傳引用。進過運算後,不會改變原有的參數的大小,而是改變該參數的副本的大小。而在Swift語言中,不管是傳的是int string 還是數組,字典,元組,都是傳數值,不是傳引用。

如果確實需要使得調用前的數值發生變化,則需要用到inout

func swapTwoInts(inout a :Int,inout b:Int){
    let t = a
    a = b
    b = t
}
var x = 0,y = 100
x//0
y//100

swapTwoInts(&x, &y)
x//100
y//0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章