Go语言基础 — Defer函数
Golang Basic — Defer Function
1 min readJun 4, 2019
Defer的特点
- 确保调用在函数结束时发生
- 参数在defer语句时计算
- defer列表为后进先出
确保调用在函数结束时发生
下面的例子中,fmt.Println(1)会比fmt.Println(2)晚执行。
再看一个文件的例子
参数在defer语句时计算 / defer列表为后进先出
关于_参数在defer语句时计算_,可以看这个例子。
得到下面的结果,可以看到defer是从10开始打印的,说明后进先出。
然后程序在10的时候停住了,但是并没有打印10个10,说明参数在defer语句时计算。
何时使用defer
- open/close
- lock/unlock
- printheader/pringfooter