package main import "fmt" type s1 struct { a int b int } type s2 struct { c s1 d int } type s3 struct { s1 d int } func s3make(a, b, c int) s3 { return s3{s1:s1{a:a, b:b}, d:c} } func main() { as1 := s1{a:2, b:3} fmt.Println(as1) var as2 s2 as2 = s2{c:s1{a:2, b:3}, d:5} fmt.Println(as2) fmt.Println(as2.c.a) as3 := s3make(4, 5, 7) fmt.Println(as3) fmt.Println(as3.a) }