Golang uses := to represent declaration and simultaneous assignment to at least one new variable. = only works if the LHS variables have already been declared. If you use :=, at least one of the variables on the LHS has to be new. So the following snippet would be an error:
a := 3
...
a := 4
This is valid: a := 3
...
a = 4
As is this: a := 3
...
a, b := 4, 2
And this is an error again: a := 3
b := 4
a, b := 1, 2
Since neither a nor b are new variables.