golang吧 关注:6,535贴子:14,801
  • 0回复贴,共1

go语言面试题分享 第 1 天

只看楼主收藏回复

下面这段代码输出的内容
```go
package main
import (
"fmt"
)
func main() {
defer_call()
}
func defer_call() {
defer func() { fmt.Println("打印前") }()
defer func() { fmt.Println("打印中") }()
defer func() { fmt.Println("打印后") }()
panic("触发异常")
}
```
答案:
```go
打印后
打印中
打印前
panic: 触发异常
```
解析:defer 的执行顺序是后进先出。当出现 panic 语句的时候,会先按照 defer 的后进先出的顺序执行,最后才会执行panic。


IP属地:浙江1楼2021-02-27 21:30回复