golang defer的执行顺序是什么

avatar
作者
猴君
阅读量:0

在Go语言中,defer语句用于注册延迟调用,延迟调用会在函数执行完毕后被执行,无论函数是正常返回还是发生异常。

当有多个defer语句时,它们的执行顺序是逆序的,即最后注册的defer语句会最先执行,最先注册的defer语句会最后执行。

下面是一个示例:

package main  import "fmt"  func main() {     defer fmt.Println("defer 1")     defer fmt.Println("defer 2")     defer fmt.Println("defer 3")      fmt.Println("main") } 

输出结果为:

main defer 3 defer 2 defer 1 

可以看到,main函数中的代码首先执行,然后依次执行了三个defer语句,按照逆序的顺序执行输出。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!