Example runs on playground with go1.11.1.
https://play.golang.org/p/UoxPKcFBMCG
package main
func main() {
var a, b = 1 // prog.go:4:6: assignment mismatch: 2 variables but 1 values
var c, d = 1, 2, 3 // prog.go:5:6: extra expression in var declaration
var e, f, g = 1, 2 // prog.go:6:6: missing expression in var declaration
h, i, j := 1, 2 // prog.go:7:10: assignment mismatch: 3 variables but 2 values
}
The two messages in the middle for “extra” and “missing” expressions don’t actually point to the offending expression that unbalances the assignment, making the message less useful. Moreover, a slight modification to the Lhs and Rhs results in the much more clear, “assignment mismatch” message. In my opinion, all of these declarations should result in the assignment mismatch error.
Example runs on playground with go1.11.1.
https://play.golang.org/p/UoxPKcFBMCG
The two messages in the middle for “extra” and “missing” expressions don’t actually point to the offending expression that unbalances the assignment, making the message less useful. Moreover, a slight modification to the Lhs and Rhs results in the much more clear, “assignment mismatch” message. In my opinion, all of these declarations should result in the assignment mismatch error.