github.com/traefik/yaegi@v0.15.1/_test/closure14.go (about) 1 package main 2 3 import "fmt" 4 5 type monkey struct { 6 test func() int 7 } 8 9 func getk(k int) (int, error) { return k, nil } 10 11 func main() { 12 input := []string{"1", "2", "3"} 13 14 var monkeys []*monkey 15 16 for k := range input { 17 kong := monkey{} 18 divisor, _ := getk(k) 19 fmt.Print(divisor, " ") 20 kong.test = func() int { 21 return divisor 22 } 23 monkeys = append(monkeys, &kong) 24 } 25 26 for _, mk := range monkeys { 27 fmt.Print(mk.test(), " ") 28 } 29 } 30 31 // Output: 32 // 0 1 2 0 1 2