github.com/traefik/yaegi@v0.15.1/_test/struct48.go (about) 1 package main 2 3 type List struct { 4 Next *List 5 Num int 6 } 7 8 func add(l *List, n int) *List { 9 if l == nil { 10 return &List{Num: n} 11 } 12 l.Next = add(l.Next, n) 13 return l 14 } 15 16 func pr(l *List) { 17 if l == nil { 18 println("") 19 return 20 } 21 print(l.Num) 22 pr(l.Next) 23 } 24 25 func main() { 26 a := add(nil, 0) 27 pr(a) 28 a = add(a, 1) 29 pr(a) 30 a = add(a, 2) 31 pr(a) 32 } 33 34 // Output: 35 // 0 36 // 01 37 // 012