github.com/HaHadaxigua/yaegi@v1.0.1/_test/issue-776.go (about) 1 package main 2 3 import "fmt" 4 5 // Filter is a filter 6 type Filter interface { 7 Foo() 8 } 9 10 // GIFT is a gift 11 type GIFT struct { 12 Filters []Filter 13 } 14 15 // New is a new filter list 16 func New(filters ...Filter) *GIFT { 17 return &GIFT{ 18 Filters: filters, 19 } 20 } 21 22 // List lists filters 23 func (g *GIFT) List() { 24 fmt.Printf("Hello from List!\n") 25 } 26 27 // MyFilter is one of the filters 28 type MyFilter struct{} 29 30 // Foo is a foo 31 func (f *MyFilter) Foo() {} 32 33 func main() { 34 g := New(&MyFilter{}) 35 g.List() 36 } 37 38 // Output: 39 // Hello from List!