Defer关键字
Gs语言中的defer
关键字所声明的代码(块)会在当前代码块退出时执行,提供一种延迟调用的方式,适合用来做一些资源释放、关闭文件、状态变更等操作
在适当的地方使用defer
能带来一些好处,比如:
- 某个需要解锁或销毁资源的函数有多个返回出口时,使用
defer
语句能够进行统一处理,有效地减少了重复代码,也方便了未来添加代码时的维护成本 - 在申请资源地方就近声明释放,可以减少后续忘记释放的可能性,比如我们open一个文件的时间经常忘了close掉,有了defer之后我们每次open一个文件接下来一条语句就是
defer fd.close()
使用
defer关键字后可以接一个简单的语句或者接一整块代码,如:
defer write("hello\n");
或者:
defer
{
int i = 0;
i++;
printf("i = %d\n", i);
}