为什么可以';在Go中不能使用add运算符进行元组赋值吗?

为什么可以';在Go中不能使用add运算符进行元组赋值吗?,go,Go,根据: = =[|]“=” 此外: 元组分配将多值操作的各个元素分配给变量列表 但是,在尝试编译时: 编译器抱怨: syntax error: unexpected +=, expecting := or = or comma 我知道临时变量可以解决这个问题。例如 aTemp, bTemp := addOne(a, b) a += aTemp b += bTemp 然而,这似乎是语言所支持的 这是编译器中的错误吗?我在语言中遗漏了什么吗?+=是一个赋值操作,而不是一个简单的赋值。规范明确规定

根据:

=

=[|]“=”

此外:

元组分配将多值操作的各个元素分配给变量列表

但是,在尝试编译时:

编译器抱怨:

syntax error: unexpected +=, expecting := or = or comma
我知道临时变量可以解决这个问题。例如

aTemp, bTemp := addOne(a, b)
a += aTemp
b += bTemp
然而,这似乎是语言所支持的


这是编译器中的错误吗?我在语言中遗漏了什么吗?

+=
是一个赋值操作,而不是一个简单的赋值。规范明确规定:

赋值运算x op=y,其中op是一个二进制算术运算符,相当于x=x op(y)[…]在赋值运算中,左侧和右侧表达式列表必须正好包含一个单值表达式


这将是一些非常混乱的语法。我很高兴它没有得到支持。
aTemp, bTemp := addOne(a, b)
a += aTemp
b += bTemp