golang defer的执行顺序是什么

   2025-02-15 6300
核心提示:在Go语言中,defer语句用于注册延迟调用,延迟调用会在函数执行完毕后被执行,无论函数是正常返回还是发生异常。当有多个defer语

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

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

下面是一个示例:

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

输出结果为:

maindefer 3defer 2defer 1

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

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言