In the gotour, there is a section: struct literals.
package main
import \"fmt\"
type Vertex struct {
X, Y int
}
var (
v1 = Vertex{1, 2} // has type Ve
The comments pretty much spell it out:
v1 = Vertex{1, 2} // has type Vertex
p = &Vertex{1, 2} // has type *Vertex
As in many other languages, &
takes the address of the identifier following it. This is useful when you want a pointer rather than a value.
If you need to understand more about pointers in programming, you could start with this for go, or even the wikipedia page.