Изменения в новых версиях / Go 1.22

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"