package main
import "fmt"
func main() {
a()
fmt.Println("")
b()
fmt.Println("")
c()
fmt.Println("")
}
func a() {
// 输出:acb
fmt.Print("a") // 顺序1
defer fmt.Print("b") // 顺序3
defer fmt.Print("c") // 顺序2
}
func b() {
// 输出:210
for i := 0; i < 3; i++ {
defer fmt.Print(i)
}
}
func c() {
// 输出:333,因为i在匿名函数的时候得到的是地址,即为3
for i := 0; i < 3; i++ {
defer func() {
fmt.Print(i)
}()
}
}