github.com/traefik/yaegi@v0.15.1/_test/interface47.go (about)

     1  package main
     2  
     3  type Doer interface {
     4  	Do() error
     5  }
     6  
     7  type T struct {
     8  	Name string
     9  }
    10  
    11  func (t *T) Do() error { println("in do"); return nil }
    12  
    13  func f() (Doer, error) { return &T{"truc"}, nil }
    14  
    15  type Ev struct {
    16  	doer func() (Doer, error)
    17  }
    18  
    19  func (e *Ev) do() {
    20  	d, _ := e.doer()
    21  	d.Do()
    22  }
    23  
    24  func main() {
    25  	e := &Ev{f}
    26  	println(e != nil)
    27  	e.do()
    28  }
    29  
    30  // Output:
    31  // true
    32  // in do