枫枫知道个人博客
首页
新闻
心情
关于
文章搜索
网站导航
项目相关
官方文档
首页
新闻
心情
关于
文章搜索
网站导航
项目相关
官方文档
登录
注册
Golang defer函数
延迟执行的函数会被压入栈中,return后按照先进后出的顺序
搜索
[[ slide_text ]]
[[ item.content ]]
6
0
Golang defer函数
发布时间:
2022-11-18
作者:
枫枫
来源:
枫枫知道个人博客
Go
Golang
1. 延迟执行的函数会被压入栈中,return后按照先进后出的顺序调用 2. 延迟执行的函数其参数会立即求值 ```Go package main import "fmt" func deferUtil() func(int) int { i := 0 return func(n int) int { fmt.Printf("本次调用接收到n=%v\n", n) i++ fmt.Printf("匿名工具函数第%v次被调用\n", i) return i } } func Defer() int { f := deferUtil() //f(1) defer f(1) //defer f(f(3)) return f(2) } func main() { Defer() } ``` 可用于函数异常捕获 ```Go func Defer() { defer func() { err := recover() if err != nil { fmt.Println(err) } }() n := 0 fmt.Println(3 / n) } func main() { Defer() fmt.Println("Defer函数之后运行") } ```
6
0
上一篇:Golang 指针
下一篇:go 包
你觉得文章怎么样
发布评论
538 人参与,0 条评论