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)