golang:defer执行顺序
Posted live4m
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang:defer执行顺序相关的知识,希望对你有一定的参考价值。
defer类似栈,是逆序执行的,
当发生panic时,先执行完前面的所有defer,最后才panic.
示例代码:
package main
import "fmt"
func test(){
defer func(){
fmt.Println("defer 1")
}()
defer func(){
fmt.Println("defer 2")
}()
defer func(){
fmt.Println("defer 3")
}()
panic("temp")
}
func main(){
test()
}
运行结果:
PS E:\\goproject> go run "e:\\goproject\\go_test1\\main.go"
defer 3
defer 2
defer 1
panic: temp
以上是关于golang:defer执行顺序的主要内容,如果未能解决你的问题,请参考以下文章