package main
import "fmt"
func main() {
for i := 0; i < 3; i++ {
defer func() {
fmt.Println("a:", i)
}()
}
}
输出是:
a:3
a:3
a:3
package main
import "fmt"
func main() {
for i := 0; i < 3; i++ {
i := i
defer func() {
fmt.Println("a:", i)
}()
}
}
输出是:
a:2
a:1
a:0
为什么两个的运行结果会不一样呢?