Swift學習筆記(三十三)——常量引數,變數引數和inout引數

乞力馬紮羅的雪CYF發表於2015-09-16

(1)一般預設在函式中定義的引數都是常量引數,也就是這個引數你只可以查詢使用,不能改變它的值。

(2)如果想要宣告一個變數引數,可以在前面加上var,這樣就可以改變這個引數的值了。

如:

func  getName(var id:String).........

此時這個id值可以在函式中改變。

(3)一般預設的引數傳遞都是傳值呼叫的,而不是傳引用。  所以傳入的引數在函式內改變,並不影響原來的那個引數。傳入的只是這個引數的副本。


(4)

import Foundation

func swapTwoInts(var a:Int,var b:Int){

  let t = a
  a = b
  b = t
}

var x = 0,y = 100
println("x = \(x) ;y = \(y)")

swapTwoInts(x, y)
println("x = \(x) ;y = \(y)")

此時傳入的引數是原來值的副本,所以這個函式並不會交換兩個值。

修改方法是使用inout關鍵字:

import Foundation

func swapTwoInts(inout a:Int,inout b:Int){

  let t = a
  a = b
  b = t
}

var x = 0,y = 100
println("x = \(x) ;y = \(y)")

swapTwoInts(&x, &y)
println("x = \(x) ;y = \(y)")

這樣,兩個變數的值就真正改變了。


github主頁:https://github.com/chenyufeng1991  。歡迎大家訪問!

相關文章