简单的defer

题目

下面这段代码正确的输出是什么?

1
2
3
4
5
6
7
8
9
func f() {
defer fmt.Println("D")
fmt.Println("F")
}

func main() {
f()
fmt.Println("M")
}
  • A. F M D
  • B. D F M
  • C. F D M

答案解析:

C。

被调用函数里的 defer 语句在返回之前就会被执行,所以输出顺序是 F D M。


简单的defer
http://example.com/2023/07/14/Go每日一题/简单的defer/
作者
Feng Tao
发布于
2023年7月14日
更新于
2023年7月14日
许可协议