go defer简单理解
来源:互联网 发布:共享 网络打印机 运行 编辑:程序博客网 时间:2024/06/05 11:19
今天看collider 代码的时候发现了,如何语句:
// room returns the room specified by |id|, or creates the room if it does not exist.
func (rt *roomTable) room(id string) *room {
rt.lock.Lock()
defer rt.lock.Unlock()
return rt.roomLocked(id)
}
这个defer 是什么,网上找了段不错的说明:
即延迟(defer)语句,你可以在函数中添加多个defer语句。当函数执行到最后时,这些defer语句会按照逆序执行,最后该函数返回。特别是当你在进行一些打开资源的操作时,遇到错误需要提前返回,在返回前你需要关闭相应的资源,不然很容易造成资源泄露等问题。
很明显我上面的代码就是函数最后执行rt.lock.Unlock()
操作
这文章对defer讲的很不错:blog.csdn.net/eclipser1987/article/details/12089271
阅读全文
0 0
- go defer简单理解
- go语言defer执行时机简单分析
- go defer
- Go语言中defer的调用顺序简单测试代码
- go语言defer使用
- go语言defer使用
- go defer关键字
- go语言defer使用 .
- Go语言之defer
- Go-defer,panic,recover
- Go语言defer
- GO defer panic recover
- 《Effective Go》--defer
- go语言-defer关键字
- Go学习笔记:关于defer
- Go语言defer的使用
- go语言 golang defer 关注点
- go语言defer的用法
- windows服务器部署tomcat及项目
- 设置一个对象的属性
- C++11 多线程
- ios 调用系统功能打电话、发信息
- PAT basic 1007
- go defer简单理解
- 13.4-全栈Java笔记:打飞机游戏实战项目|offScreenImage|GameObject|Plane
- css3属性-webkit-font-smoothing
- 锚点设置
- Ubuntu安装Python机器学习包
- JS-字符串分割为一维数组/二维数组
- PAT basic 1008
- Python 3.5.0安装Numpy库 scipy库 matplotlib库 及sklearn库详细过程
- 帧动画的实现