面试题答案
一键面试defer语句功能
defer语句用于在函数返回之前执行一些代码,通常用于资源清理,如关闭文件、数据库连接等。即使函数出现恐慌(panic),defer语句定义的函数依然会执行,从而确保资源被正确释放。
多个defer语句执行顺序
在一个函数中有多个defer语句时,它们遵循后进先出(LIFO,Last In First Out)的顺序执行,即最后定义的defer语句最先执行。
举例说明
package main
import "fmt"
func main() {
fmt.Println("开始执行")
defer fmt.Println("第一个defer")
defer fmt.Println("第二个defer")
fmt.Println("结束执行")
}
上述代码执行结果为:
开始执行
结束执行
第二个defer
第一个defer
从结果可以看出,两个defer语句按照定义的逆序执行。