开发者社区 问答 正文

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 542 分享 版权
1 条回答
写回答
取消 提交回答
  • go程序中defer是一种栈行为,先入后出,所以执行是后入先出

    2021-10-25 21:59:18
    赞同 展开评论
问答分类:
Go
问答地址: