Go语言——defer

Go语言——defer

defer操作类似stack,FILO先进后出。

与return一直使用的时候,需要注意顺序,因为return不是原子操作

  1. 给返回值赋值
  2. 执行defer函数
  3. 返回值

第一步可以说是go的特性,因为go语言给可以显式声明返回值,如下:

func f()(i int){
    
    return 1
}

入上所示,return会首先将1赋值给i,然后返回i。如果没有声明返回值,就没有这个困扰,是1就是1。

分析之后,发现虽然题目是defer,单其实更多分析return。。。。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 参考文章:深入理解Go语言 defer用于资源的释放,会在函数返回之前进行调用 defer关键字的实现跟go关键字...
    小杰的快乐时光阅读 2,563评论 0 0
  • Go语言defer关键字 defer关键字用于延缓函数的执行 只需要在调用普通函数或方法前加上关键字defer,就...
    楠小忎阅读 8,095评论 1 0
  • 很多人都知道戀愛和婚姻是不同的事情,但是當問到差別時,卻又說不出所以然。當愛侶踏入婚姻後,對於身份的轉換應變不及,...
    云依尚阅读 2,915评论 0 0
  • 时光逆行在昨天 触景生情漫云边 《月 圆 愁》 湖上一轮皓月悠, 岸边几行柳兰花。 燕...
    一叶孤飞阅读 3,424评论 15 8