According to the Golang language syntax specification:
furthermore:
A tuple assignment assigns the individual elements of a multi-valued operation to a list of variables.
However, when trying to compile the following code:
package main
func addOne(a, b int) (int, int) {
return a+1, b+1
}
func main() {
var a, b int
a, b += addOne(a, b)
}
the compiler complains with:
syntax error: unexpected +=, expecting := or = or comma
I'm aware temporary variables can work around this. E.g.
aTemp, bTemp := addOne(a, b)
a += aTemp
b += bTemp
However, it seems like something the language says it supports.
Is this a bug in the compiler? Have I missed something in the language?