defer函数需要先注册

题目:

1
2
3
4
5
6
7
8
9
10
11
12
13
var a bool = true
func main() {
defer func(){
fmt.Println("1")
}()
if a == true {
fmt.Println("2")
return
}
defer func(){
fmt.Println("3")
}()
}

答案解析:

1
2
2
1

defer 关键字后面的函数或者方法想要执行必须先注册,return 之后的 defer 是不能注册的, 也就不能执行后面的函数或方法。


defer函数需要先注册
http://example.com/2023/07/21/Go每日一题/defer函数需要先注册/
作者
Feng Tao
发布于
2023年7月21日
更新于
2023年7月21日
许可协议