Go 初体验 - 令人惊叹的语法 - defer.2 - 如何提前执行?
2024-08-23 13:37:19
上一文中讲到 defer 会在宿主函数 return 之前调用,那么我们就是想在宿主函数执行到中间调用,怎么办呢?
1. 改变宿主函数逻辑,分成多个函数,需要的那个函数里 defer 。
2. 使用匿名函数,将 defer 包在匿名函数里:
调用:
输出:
可以看到,defer 的那个 unlock 实在匿名函数执行完成之前被调用的,已经跑到了 exit inner 后面。
多个 defer 怎么办?
这时遵循栈的顺序,即,后定义先执行。
defer a()
defer b()
defer c()
他们的执行顺序是:
c()
b()
a()
HOHO...
最新文章
- SqlServer数据冗余的问题和解决
- 关于nodejs能同时接受多少个请求的问题?////zzz
- vertical-align及IE7下的inline-block
- NGUI Atlas
- iOS-appStore发布流程
- [IT扫盲]软件测试时期版本的称呼
- Good Bye 2013
- Linux inotify功能及实现原理
- Android基本控件之GridView
- 《WPF程序设计指南》读书笔记——第3章 内容的概念
- Supervised Learning-Regression
- 简单的jquery选择器的实现
- 新安装的linux(linux mint 或则ubuntu)系统中安装postgresql-xc安装的包
- Linux命令之文本处理(二)
- iOS8学习笔记2--autolayout
- Maven 浅谈一
- android studio 环境变量配置
- 求逆序对常用的两种算法 ----归并排 &; 树状数组
- Networked Graphics: Building Networked Games and Virtual Environments (Anthony Steed / Manuel Fradinho Oliveira 著)
- GZipStream 压缩与解压数据