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

我想要一个函数来交换2个变量! 但对于新的快速,我不能使用’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 )