1 个回答
在每轮迭代中生成一个局部变量 i 。如果没有 i := i 这行,将会打印同一个变量。
func main() {
for i := 0; i < 5; i++ {
i := i
defer func() {
println(i)
}()
}
}
或者是通过函数参数传入 i 。func main() {
for i := 0; i < 5; i++ {
defer func(i int) {
println(i)
}(i)
}
}
发布于:5个月前 (11-29) IP属地:四川省
我来回答
您需要 登录 后回答此问题!