composition via embedding instead of inheritance
examples/struct-compose/struct_compose.go
package main import "fmt" type myPoint struct { x int y int } type myOther struct { x float32 z int } type myCircle struct { myPoint myOther r int } func main() { p1 := myPoint{ x: 1, y: 2, } c1 := myCircle{} c1.myPoint.x = 3 c1.myOther.x = 6 c1.y = 4 c1.r = 5 fmt.Println(p1) fmt.Println(c1) // c2 := myCircle{ // myPoint: myPoint{x: 6, y: 7}, // r: 8, // } // fmt.Println(c2) }
{1 2} {{3 4} 5} {{6 7} 8}