多个defer的执行顺序以及其相关练习
前言
做了几道关于defer的测试题,吓了一大跳,感觉自己之前的理解有些问题,所以写下这篇博客,加深下印象。
正文:
多个defer的执行顺序:
先进后出,类似于栈的特性。
下面我们来测试下:
1.defer 与 panic:
func deferAndPanic() {
defer func() { fmt.Println("defer1") }()
defer func() { fmt.Println("defer2") }()
defer func() { fmt.Println("defer3") }()
panic("异常内容")
}
func main() {
deferAndPanic()
fmt.Println("main 正常结束")
}


