Go语言——defer
defer操作类似stack,FILO先进后出。
与return一直使用的时候,需要注意顺序,因为return不是原子操作
- 给返回值赋值
- 执行defer函数
- 返回值
第一步可以说是go的特性,因为go语言给可以显式声明返回值,如下:
func f()(i int){
return 1
}
入上所示,return会首先将1赋值给i,然后返回i。如果没有声明返回值,就没有这个困扰,是1就是1。
分析之后,发现虽然题目是defer,单其实更多分析return。。。。
网友评论