多个赋值在golang中是否有顺序

Wha*_*rld 12 go

我知道golang支持多个赋值,例如,

a, b = c, d
Run Code Online (Sandbox Code Playgroud)

我想知道左 - >右命令后的作业是否合适?例如,如果我玩树木:

parent, child = child, child.child
Run Code Online (Sandbox Code Playgroud)

它是否保证父和子都在树中更深一层?

Fli*_*mzy 20

是.从语言规范:

转让分两个阶段进行.首先,左边的索引表达式和指针间接(包括选择器中的隐式指针间接)的操作数和右边的表达式都按照通常的顺序进行评估.其次,分配按从左到右的顺序进行.

所以,在你的榜样,childchild.child会先进行计算,然后分配给parentchild分别.