defer

defer 关键字可以用来包裹一段代码,这个代码块将会在当前作用域结束的时候被调用。这通常被用来对当前的代码进行一些清理工作,比如关闭打开文件等。

可以在同一个作用域中指定多个 defer 代码块,在当前作用域结束时,它们会以相反的顺序被调用,即先定义的后执行,后定义的先执行。

例如:

1
2
3
4
5
6
7
8
9
10
11
openFile()
defer {
// defer block 1
closeFile()
}

startPortListener(42)
defer {
// defer block 2
stopPortListener(42)
}

这段代码的作用域结束的时候,第二个 defer 块将首先被调用,其次再调用第一个 defer 块。

文章作者: Ammar
文章链接: http://lizhaoloveit.cn/2016/04/22/defer/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ammar's Blog
打赏
  • 微信
  • 支付宝

评论