If you're referring to stuff in main(), like [2], these are, well,
"blocks" [3]. A block creates a new scope for variables declared in it.
This can be used to 1) making sure the variables declared and used in a
block seize to exist when the block is left; 2) declare the same-named
variable in several (consequtive) blocks -- having a different type in
each of them.
This feature is not Go specific and exist, say, in C.
It's often overlooked in tutorial material and hence may take a
non-seasoned programmer by surprise.
2.
https://gist.github.com/hvoecking/10772475#file-translate-go-L100
3.
https://golang.org/ref/spec#Blocks