例1の関数の内容を見ると変数との値はスムーズに入れ替わりそうに思えたのですが実行してみると入れ替わりませんでした(とても不思議です)。例2のを使った例では入れ替わっていました。inoutにはどのような役割があるのでしょうか?
間違いご指摘ありがとうございます。訂正しました
func swapInt(var a:String, var b:String) {
let x = a; a = b; b = x
}
var x = "x"
var y = "y"
swapInt(x, b: y)
print("x:(x)")
func swapInt(inout a:String, inout _ b:String) { // 例2
let x = a; a = b; b = x
}
var x = "x"
var y = "y"
swapInt(&x, &y)
print("x:(x)")
print("y:(y)")
-------------------------------------------------------------------------------------0. 番号リスト
例1と例2のコードが一緒ではないでしょうか?質問から察するに例1の方が違うコードなのではないでしょうか?
回答2件
あなたの回答
tips
プレビュー