当前位置:网站首页>go defer的使用说明

go defer的使用说明

2022-07-04 19:42:00 码农竟在我身边

defer是go中一种延迟调用机制,defer后面的函数只有在当前函数执行完毕后才能执行,通常用于释放资源。
defer遵循先进后出的原则,类似于栈的结构。
为什么要把defer设计成这种机制?
因为后申请的资源和可能对前面申请的资源有依赖。如果先将前面申请的资源释放掉了。对于后面的资源可能会造成影响。所以先释放后申请的资源,再释放前面申请的资源

func main() {

	defer func() {
		fmt.Println("w")
		if err := recover(); err != nil {
			fmt.Println(err)
		}
	}()
	f()



}
func f() {
	fmt.Println("a")
	panic("error defer")
}


原网站

版权声明
本文为[码农竟在我身边]所创,转载请带上原文链接,感谢
https://blog.csdn.net/apanpan8126/article/details/125606023