github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/talks/2015/go-for-java-programmers/pointer.go (about) 1 // +build OMIT 2 3 package main 4 5 import "fmt" 6 7 // START TYPES OMIT 8 type Point struct { 9 X, Y int 10 } 11 12 type Rectangle struct { 13 Min, Max Point 14 } 15 16 // END TYPES OMIT 17 18 func main() { 19 var r0 Rectangle 20 21 r1 := r0 // struct copy 22 23 r1.Min.X, r1.Min.Y = -1, -1 24 r1.Max = Point{X: 2} 25 26 fmt.Printf("r0 is %+v\n", r0) 27 fmt.Printf("r1 is %v\n", r1) 28 29 y := &r1.Max.Y // y is a *int // HL 30 *y = 5 // HL 31 fmt.Println(y, "points to", *y) 32 33 min := &r1.Min // min is a *Point // HL 34 min.X = 7 // HL 35 fmt.Printf("r1 is %v\n", r1) 36 }