Autohotkey 有没有办法将两个变量的内容相互替换(';s)?

Autohotkey 有没有办法将两个变量的内容相互替换(';s)?,autohotkey,Autohotkey,不使用第三个变量进行临时存储和变量内容旋转?比如一个特殊的等号操作符 高效的代码就是漂亮的代码。可读的代码就是漂亮的代码,所以没有比使用临时变量更好的方法了 如果你真的想这么做,你可以使用一些XOR 自 X := X XOR Y Y := X XOR Y X := X XOR Y 切换这两个变量。您可以在自动热键中使用^xor 但是,请将其与以下内容进行比较: c = a a = b b = c 它同样长,但是使用临时变量的代码可读性更高。而且,创建变量的成本并不重要,不管您正在创建什么系统

不使用第三个变量进行临时存储和变量内容旋转?比如一个特殊的等号操作符


高效的代码就是漂亮的代码。

可读的代码就是漂亮的代码,所以没有比使用临时变量更好的方法了

如果你真的想这么做,你可以使用一些XOR

X := X XOR Y
Y := X XOR Y
X := X XOR Y
切换这两个变量。您可以在自动热键中使用^xor

但是,请将其与以下内容进行比较:

c = a
a = b
b = c

它同样长,但是使用临时变量的代码可读性更高。而且,创建变量的成本并不重要,不管您正在创建什么系统(尤其是在AutoHotKey中创建)

这是一个很好的把戏,但我再强调也不过分:不要这样做。这是可怕的不可读,并没有任何方式比c=a更好;a=b;b=c。从技术上讲,它是有效的。但它不如标准作业那么有效。此外,如果其中一个变量在第一次赋值后发生更改,则两个变量都已损坏。是。这就是为什么你不应该这么做。正如我所说的,使用临时变量简短、易读且快速。这是一个很好的解决办法。另一种方法就是回答这个问题。@NiteCyper这是您可以使用的最短的XOR:x^=y。。。但正如Astrogat所说,即使看起来效率也不高。