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