defer是一种在函数中延迟执行语句的关键字,它通常与 defer 后面的函数调用配合使用。当 defer 关键字和对应的函数调用被执行时,该函数调用会被推迟到当前函数返回之前执行。
这种机制可以用来确保在函数退出之前执行某些清理或释放资源的操作。无论函数是正常返回还是发生异常终止,都能保证 defer 中的代码会得到执行。
以下是一个示例:
func doSomething() {
fmt.Println("Start")
defer fmt.Println("Deferred execution")
fmt.Println("End")
}
func main() {
doSomething()
}
上述代码中,输出结果为:
Start
End
Deferred execution
可以看到,在 doSomething() 函数中,我们使用了 defer 关键字将 "Deferred execution" 语句进行了延迟执行,并且最终在函数返回之前得以执行。
请注意,defer 关键字按照逆序执行,即后定义的 defer 语句会先被执行。
内容由零声教学AI助手提供,问题来源于学员提问




