主题
defer 用法
defer
关键字用于延迟函数的执行,直到包含它的函数即将返回时才执行。
1. 基本用法
go
func main() {
defer fmt.Println("world")
fmt.Println("hello")
}
输出:
hello
world
2. 多个 defer
多个 defer 按照后进先出(LIFO)顺序执行:
go
func main() {
defer fmt.Println("first")
defer fmt.Println("second")
defer fmt.Println("third")
}
执行顺序:
third
second
first
3. 应用场景
- 关闭文件、释放锁等资源:
go
file, _ := os.Open("test.txt")
defer file.Close()
- 保证函数退出前执行清理操作。
defer 简化了资源管理,确保关键操作不会被遗漏。