2 defer:
(1). 概念:
①. 当函数返回时,执行defer语句.因此,可以用来做资源清理.
②. 多个defer语句,按先进后出的方式执行(最晚的先执行).
③. defer语句中的变量,在defer声明时就决定了.
④. 举例:
var a int = 111
defer fmt.Println(a) // 第3执行,打印值为111.在defer定义时,是什么值就是什么值.跟后面没关系.
defer fmt.Println("333") // 第2执行,因为先进后出,先入栈后出.
a = 222
fmt.Println(a) // 第1执行
结果:
222
333
111