交换两个值的 Swift 函数

The*_*494 1 swift

我需要编写一个函数来交换任意两个变量的内容。这就是我目前所拥有的,但我收到错误“无法分配给值:‘a’是‘let’常量”。

func swap<T>(a: T, b: T) {
    (a, b) = (b, a);
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么这不起作用并建议如何解决它吗?

谢谢。

Bib*_*cob 5

您需要设置参数inout才能做到这一点,如下所示:

func swap<T>(_ a: inout T,_ b: inout T) {
    (a, b) = (b, a)
}
var a = 0, b = 1
swap(&a, &b)
Run Code Online (Sandbox Code Playgroud)