Golang的一个小Tip

有一道面试题是这样的,你可能也遇到过:

交换a, b两个变量,且不引入第三个变量。

通常我们会用两次异或计算来实现。

例如PHP实现如下:

1
2
3
4
5
$a = 1;
$b = 2;
$a = $a^$b;
$b = $b^$a;
$a = $a^$b;

而Golang的实现是这样的:

1
2
3
a := 1
b := 2
a,b = b,a

交换变量值的代码就一行,简单吧。因为golang支持在一个语句中对多个变量赋值。

加载评论框需要科学上网