教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 go:defer

go:defer

发布时间:2022-12-27   编辑:jiaochengji.com
教程集为您提供go:defer等资源,欢迎您收藏本站,我们将为您提供最新的go:defer资源

defer:延迟。

假设有调用函数A、被调用函数B,其关系如下:

func A(){//调用函数
  ...  
  defer B()//被调用函数
  ...  
  return//B将延迟到return前执行  
}

*defer是延迟执行关键字,将使B延迟到A  return前执行。

*可在A中添加多个defer,在函数将要return时,这些defer语句按逆序执行。

*defer通常用于释放资源。

*其具体执行过程参考:http://studygolang.com/articles/2593  

  

优点:

1.将申请资源和释放资源的代码写在一起,可以保证资源被释放,避免错误

2.在发生不同错误需要提前return时,无需重复编写释放资源相关语句

参考:http://my.oschina.net/golang/blog/77523

缺点:

假设申请了较大的资源,当这个资源不再使用时,应该及时被释放。

但若使用了defer关键字,资源将有可能得不到及时释放。

参考:http://blog.csdn.net/eclipser1987/article/details/12089271

 

-----------------------------------------------------

* 本文是根据自身经验所作,难免存在不合理之处。

到此这篇关于“go:defer”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:

[关闭]
~ ~