Pointers
Pointers, like C++, hold memory addresses of a value. The zero value of a pointer is nil. Pointers are declared with *T which is a pointer to type T. The & operator creates a pointer to its operand. You can access the pointer value with * to get and set.
go
var p *int
i := 42
p = &i
fmt.Println(*p)
*p = 21Structs
To access values of a struct you are referencing with a pointer, you can use the shorthand of the . operator to access the value.
go
type Vertex struct {
X int
Y int
}
p := &Vertex{1,2}
fmt.Println(p.Y)
p.X = 4