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

     1  package main
     2  
     3  import "fmt"
     4  
     5  type T struct {
     6  	F func()
     7  }
     8  
     9  func main() {
    10  	foos := []T{}
    11  
    12  	for i := 0; i < 3; i++ {
    13  		a := i
    14  		n := fmt.Sprintf("i=%d", i)
    15  		foos = append(foos, T{func() { println(i, a, n) }})
    16  	}
    17  	foos[0].F()
    18  	foos[1].F()
    19  	foos[2].F()
    20  }
    21  
    22  // Output:
    23  // 3 0 i=0
    24  // 3 1 i=1
    25  // 3 2 i=2