快速了解GO语言10 - 延迟
defer
- 作用:放到最后执行
- 特性:
- 遵循栈原则,先进后出。
- 发生变量传递时,优先传递变量,然后向下执行,再执行延迟函数,最后执行return命令。
输出结果是:func main(){ a := 2 defer fun(a) a++ printls("主函数内输出a:",a) } func fun(x){ defer fun2(x) printls("fun函数内输出a:",x) return }
> 主函数内输出a:3 > fun函数内输出a:2
延迟的常见用法
- 安全的回收资源,比如文件句柄打开后提前输入好关闭再进行操作。
- 30分钟未付款订单定时取消。
- 异常的捕获
- 在出现异常时,延后处理。