x := 5; x, y := 10, 20; fmt.Println(x, y)?Результат: 10 20. Во второй строке x, y := 10, 20 переменная y - новая, поэтому := допустим. При этом x не объявляется заново, а только переприсваивается (ей уже было 5, станет 10).
В short variable declaration := хотя бы одна переменная слева должна быть новой для этой области видимости. Остальные могут быть уже объявлены - тогда им просто присваиваются новые значения.
x := 5
x, y := 10, 20 // x переприсваивается, y объявляется
fmt.Println(x, y) // 10 20