blob: 53598a619b4831bd2deb96bf28f333e214e27496 [file] [log] [blame] [view]
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001# Simultaneous Assignment
2
3Simultaneous assignment is useful in many cases to make related assignments in a single statement. Sometimes they are required, either because only a single statement is available (e.g. in an if statement) or because the values will change after the statement (e.g. in the case of swap). All values on the right-hand side of the assignment operator are evaluated before the assignment is performed.
4
5Simultaneous assignment in an if statement can improve readability, especially in test functions:
6```
7if got, want := someFunction(...), currTest.Expected; got != want {
8 t.Errorf("%d. someFunction(...) = %v, want %v", currIdx, got, want)
9}
10```
11
12Swapping two values is also made simple using simultaneous assignment:
13
14```
15i, j = j, i
16```
17
18http://golang.org/ref/spec#Assignments