Go has pointers, but no pointer arithmetic.
Struct fields can be accessed through a struct pointer. The indirection through the pointer is transparent.
package main import "fmt" type Vertex struct {
X int
Y int
} func main() {
p := Vertex{, }
var q2 *Vertex = &p
fmt.Println(q2.X)
q := &p
q.X = 1e9
fmt.Println(p)
}