My favorite little annoyance with Go is the way the := operator behaves with multiple assignment. It declares a new variable if there is no variable of that name in the current scope. But it refuses to do that if there are struct fields involved.
var t int
t, err := someFunc() // that's fine
but this doesn't compile: var s struct{ x int }
s.x, err := someFunc() // doesn't compile