DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go 的 defer 执行顺序是什么?有哪些常见误区?

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

defer 在函数返回前执行,多个 defer 按后进先出(LIFO)顺序执行——最后一个注册的先执行。常见用途:关闭文件、解锁互斥锁、recover 兜底。误区:① defer 参数在注册时立即求值(值拷贝),想取最终值要用闭包;② defer 里修改返回值要配合命名返回值;③ 循环里不要大量 defer(会堆积到函数结束),用局部函数包一层;④ defer recover() 必须写在匿名函数里。

下载推广海报

圈内讨论推广海报

《Go 的 defer 执行顺序是什么?有哪些常见误区?》完整推广海报
REPLIES

回复

0 条回复
暂无回复。