面试题答案
一键面试- 执行顺序:
在Go语言中,当一个函数包含多个
defer
语句时,这些defer
语句会按照后进先出(LIFO,Last In First Out)的顺序执行,即在函数即将返回时,最后声明的defer
语句最先执行。 - 示例代码:
package main
import "fmt"
func main() {
defer fmt.Println("defer 1")
defer fmt.Println("defer 2")
defer fmt.Println("defer 3")
fmt.Println("main function")
}
- 输出结果: 上述代码的输出为:
main function
defer 3
defer 2
defer 1
从输出结果可以看出,defer
语句按照后进先出的顺序执行。