一行代码进行多个赋值操作
Go支持在一行代码中进行多个赋值操作
例如
a, b := 1,2
fmt.Printf("a = %d b = %d")
输出 :
a = 1 b = 2
相较于C++的写法
int a = 1,b = 2;
只做到了语法上的简洁 可以视作Go的语法糖
同时读写变量
如果要交换两个变量的值 C++会这么做
int a = 1, b = 2, tmp = 0;
tmp = a;
a = b;
b = tmp;
Go的做法是
a,b := 1,2
a,b = b,a
Go的一行代码内进行多个赋值操作时 并不是简单的按顺序执行
否则就会出现
a = b
b = a
Go应当是利用tmp变量缓存了赋值操作
atmp := a
btmp := b
a = btmp
b = atmp
所以Go在一行代码内执行多个赋值操作时 不会因为顺序导致赋值结果被改变
网友评论