go语言(五)----defer

发布时间:2024年01月18日

1、defer的词义:“延迟”,“推迟”
在go语言中,defer关键字来延迟一个函数或者方法的执行

1.defer函数或方法:一个函数或方法的执行被延迟了

2.defer的用法:
A:对象.close(),临时文件的删除。。。
文件.open()
defer close()
读或写
B:go语言中关于异常的处理,使用panic()和recover()
panic函数用于引发恐慌,导致程序中断执行
recover函数用于恢复程序的执行,recover()语法要求必须在defer中执行

package main

import "fmt"

func func1()  {

	fmt.Println("A")

}

func func2()  {

	fmt.Println("B")

}

func func3()  {

	fmt.Println("C")

}

func main() {
	defer func1()
	defer func2()
	defer func3()
}

在这里插入图片描述
defer中的栈,后进先出。
在这里插入图片描述
2、defer和return谁先执行

package main

import "fmt"

func deferFunc() int {
	fmt.Println("defer func called...")
	return 0
}

func returnFunc() int {
	fmt.Println("return func called...")
	return 0
}

func returnAndDefer() int {
	defer  deferFunc()
	return returnFunc()
}
func main() {

	returnAndDefer()

}

在这里插入图片描述
由此可以看出,defer的语句后执行,return的语句先执行。

文章来源:https://blog.csdn.net/weixin_41709748/article/details/135665009
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。