通常、関数に値を渡すと値渡しになるため、呼び出し元の変数に変更は反映されないのですが、 型にinoutを付け、参照渡しにすることで呼び出し元に反映させることが出来ます。
通常
var a = 1
var b = 2
// 普通に呼び出した場合(通常、値渡しなので、結果が呼び出し側の変数に影響しない)
func add(left:Int, right:Int) -> Int {
return a+b
}
add(left:1,right:2) // 3
print(a) // 1 変更されない
呼び出し元の変数を変更したい場合
var a = 1
var b = 2
// 参照渡しで結果を呼び出し側の変数に反映させる
func add(org:inout Int, added:Int){
org = org + added
}
// 呼び出す際にinoutの引数に対しては&が必要
add(org: &a, added: b)
print(a) // 3 変更される