go语言(五)----defer

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()
}

go语言(五)----defer_第1张图片
defer中的栈,后进先出。
go语言(五)----defer_第2张图片
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()

}

go语言(五)----defer_第3张图片
由此可以看出,defer的语句后执行,return的语句先执行。

你可能感兴趣的:(golang,开发语言,后端)