多个赋值在golang

时间:2017-08-05 22:33:45

标签: go

我知道golang支持多项任务,例如

a, b = c, d

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

parent, child = child, child.child

它是否可以保证父树和孩子在树中分配更深层次?

1 个答案:

答案 0 :(得分:18)

是。来自language spec

  

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

因此,在您的示例中,首先评估childchild.child,然后分别分配给parentchild