golang:defer执行时机
Posted live4m
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang:defer执行时机相关的知识,希望对你有一定的参考价值。
return 不是原子操作.
没有defer时的函数return:
1.函数返回值赋值
2.ret指令
有defer时的函数return:
1.函数返回值赋值
2.执行defer
3.ret指令
func f1() int { //返回值为5
x := 5
defer func() {
x++
}()
return x
}
func f2() (x int) { //返回值为6
defer func() {
x++
}()
return 5
}
以上是关于golang:defer执行时机的主要内容,如果未能解决你的问题,请参考以下文章