var funcs []func()
// *** before: ***
for i := 0; i < 3; i++ {
funcs = append(funcs, func() {
fmt.Println(i) // все три функции видят одну и ту же i
})
}
// funcs[0](), funcs[1](), funcs[2]() напечатают "3 3 3"
// *** in version 1.22: ***
for i := 0; i < 3; i++ {
funcs = append(funcs, func() {
fmt.Println(i) // у каждой итерации своя i
})
}
// funcs[0](), funcs[1](), funcs[2]() напечатают "0 1 2"