package main import "fmt" // defer 把函数放到栈中,最先定义的最后执行 func a() { i := 0 defer fmt.Println(i) // 放到函数栈中的时候也把值传入进去了 i++ defer func(i int) { fmt.Println(i) // 放到函数栈中的时候也把值传入进去了 }(i) defer func() { // 使用的是全局变量 i++ fmt.Println(i) }() return } func main() { a() // 2 , 1 ,0 }
标签:defer,fmt,func,栈中,Println,main From: https://www.cnblogs.com/zxqblogrecord/p/16798895.html