![83991c6530f6ed1992a8c3f673e58a44.png](https://img-blog.csdnimg.cn/img_convert/83991c6530f6ed1992a8c3f673e58a44.png)
Go语言的defer是一个很方便的机制,能够把某些函数调用推迟到当前函数返回前才实际执行。我们可以很方便的用defer关闭一个打开的文件、释放一个Redis连接,或者解锁一个Mutex。而且Go语言在设计上保证,即使发生panic,所有的defer调用也能够被执行。不过多个defer函数是按照定义顺序倒序执行的。 我们在公众号有一篇文章:
【Golang】脱胎换骨的defermp.weixin.qq.com![32f5e7eaaa60bc8bb1d29573de064d12.png](https://img-blog.csdnimg.cn/img_convert/32f5e7eaaa60bc8bb1d29573de064d12.png)
内容有点儿多,篇幅有点儿长,所以在这里我们打算拆分成四篇文章,每一篇专注一两个主要问题,可能会好消化些吧~
(一)“ defer如何延迟,因何倒序?”
(二)“ defer函数怎样传参?”
(三)“ defer+闭包,再多套几层,你还hold住吗?”
(四)“ 都说defer1.12性能有坑