github.com/HaHadaxigua/yaegi@v1.0.1/_test/struct32.go (about)

     1  package main
     2  
     3  type T0 struct {
     4  	name string
     5  }
     6  
     7  type lookupFunc func(s string) T0
     8  
     9  type T1 struct {
    10  	name string
    11  	info lookupFunc
    12  }
    13  
    14  func (t T0) F1() bool { println("in F1"); return true }
    15  
    16  type T2 struct {
    17  	t1 T1
    18  }
    19  
    20  func (t2 *T2) f() {
    21  	info := t2.t1.info("foo")
    22  	println(info.F1())
    23  }
    24  
    25  var t0 = T0{"t0"}
    26  
    27  func main() {
    28  	t := &T2{T1{
    29  		"bar", func(s string) T0 { return t0 },
    30  	}}
    31  
    32  	println("hello")
    33  	println(t.t1.info("foo").F1())
    34  }
    35  
    36  // Output:
    37  // hello
    38  // in F1
    39  // true