defer 作用:
- 作为函数的进入与退出的log日志:// Test project main.go
- 代码如下
package main import ( "fmt" ) func begin(funName string) string { fmt.Println("Enter Function") return funName } func end(funName string) string { fmt.Println("Leave Function") return funName } func record() { fmt.Println("Run Function") } func main(){ defer end(begin("func")) record() }
输出为:Enter Function
Run Function
Leave Function
- 代码如下
- 作为异常处理和文件关闭的处理函数。
- 匿名函数和命名函数都可以作为defer的延迟函数。
- 多个defer语句之间的顺序是先进后出的。
- defer语句可以有返回值,但是这个返回值是没有意义的。
- 匿名函数的操作对象如果会被返回,则该defer是会对返回值有影响的。
有疑问加站长微信联系(非本文作者)