我想让一个函数交换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放置在类型附近,函数的原型(prototype)将变为:
func swapF(a:inout Int, with b:inout Int )

关于ios - 为什么不能将不变值作为inout参数: literals are not mutable,传递?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38295620/

10-13 03:54