Go语言defer语句

defer关键字标识的函数会在外层函数返回完再执行,但其参数在defer语句处就已经赋值完毕。

一个函数内的多个defer语句会“入栈”,在外层函数返回完后按后进先出的顺序执行。

defer语句常用来进行清理、善后的工作等。一个defer的实用用法就是确保文件流使用完后总会被关闭。

可参考这篇文章中的defer部分:

Defer, Panic, and Recover - The Go Programming Language