分配可以认为是“原子”操作。也就是说,认为在所有
=操作完成之前,“ 左侧”的所有值都是“冻结”的,这很有用。
考虑以下程序:
package mainimport "fmt"func swap() (int, int) { x := 1 y := 2 x, y = y, x return x, y}func main() { fmt.Println(swap()) // prints 2 1}如果没有这种“冻结”的行为,你会得到
2两个
x和
y,这 可能 不是你从代码中会发生什么。它也 可能是
理智关于这个“冻结”的行为比如果“级联”的方式采取的语义更容易。



