开发者社区> 问答> 正文

go程序中defer执行顺序反了

package main

import "fmt"

func main() {
	defer fmt.Println("1")
	defer fmt.Println("2")
	defer fmt.Println("3")
	defer fmt.Println("4")
	fmt.Println("hello")
}

运行结果

hello
4
3
2
1

展开
收起
水果黄瓜 2021-10-23 22:07:09 517 0
1 条回答
写回答
取消 提交回答
  • go程序中defer是一种栈行为,先入后出,所以执行是后入先出

    2021-10-25 21:59:18
    赞同 展开评论 打赏
问答分类:
Go
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Go语言路上踩过的坑 立即下载
gohbase :HBase go客户端 立即下载
Go构建日请求千亿级微服务实践 立即下载