不能将不可变值作为 inout 参数传递:文字不可变,为什么



我想做一个函数来交换 2 个变量! 但是对于新的 swift,我不能使用"var"....

import UIKit
func swapF(inout a:Int, inout with b:Int ) {
    print(" x = (a) and y = (b)")
    (a, b) = (b, a)
    print("New x = (a) and new y = (b)")
}
swapF(&5, with: &8)

文本不能作为 inout 参数传递,因为它们本质上是不可变的。

请改用两个变量:

var i=5
var j=8
swapF(a:&i, with: &j)

此外,对于最后的 Swift 3 快照之一,inout 应该放在类型附近,函数的原型变成:

func swapF(a:inout Int, with b:inout Int ) 

最新更新