Linux 拨号vps windows公众号手机端

golang defer的执行顺序是什么

lewis 8年前 (2017-12-25) 阅读数 11 #程序编程
文章标签 golang

在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语句,按照逆序的顺序执行输出。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门