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