知识卡片

Defer注册退出动作

专业/工作 · 470.b.1.a.1.c.3.a.6.a.2.d.1.a

内容

defer 向当前函数注册退出前执行的调用,常用于资源释放、解锁和错误处理。发散:defer 把清理逻辑贴近申请位置,降低遗漏风险。运行时侧的等价说明见[[Defer保证异常清理]]。

参考来源

- 位置:《Go语言入门到实战(共3册)》第29章《Go语言学习笔记:第4章 函数》(源文件:_epub-src/text/part0058.html) - 结论依据:原文围绕“语句defer向当前函数注册稍后执行”给出定义、机制、流程、对比或限制条件,本卡片据此提炼可迁移的语言/工程结论,并补充了边界或实践启发。 - 原始内容:传递参数就可读取或修改环境状态,当然也要为此付出额外代价。对于性能要求较高的场合,须慎重使用。 未知 4.5 延迟调用 语句defer向当前函数注册稍后执行的函数调用。这些调用被称作延迟调用,因为它们直到当前函数执行结束前才被执行,常用于资源释放、解除锁定,以及错误处理等操作。 func main(……