defer语句被⽤于预定对⼀个函数的调⽤。可以把这类被defer语句调⽤的函数称为延迟函数。
延迟的函数是按照后进先出(LIFO)的顺序执行
defer的作用
* 释放占用资源
* 捕捉异常状态
* 输出日志
func ReadWrite() bool {
file.Open("file")
defer file.Close() //file.Close() 被添加到了 defer 列表
// 做一些工作
if failureX {
return false //Close() 现在自动调用
}
if failureY {
return false //这里也是
}
return true //And here
}
有疑问加站长微信联系(非本文作者)