首页 > 解决方案 > 如何在不快速使用第三个变量的情况下交换任何类型的两个变量?

问题描述

我知道如何像下面这样交换int :

var x = 5
var y = 7

x = x + y
y = x - y
x = x - y

print(x)
print(y)

但是如何在不使用第三个变量的情况下交换任何其他类型的两个变量?

标签: swift

解决方案


使用元组!

var a = "a"
var b = "b"
(b, a) = (a, b)

这适用于任何类型或任何数量的变量。

另一种类似于您使用Ints 的方法的方法:

a += b
b = String(a.dropLast(b.count))
a = String(a.dropFirst(b.count))

推荐阅读