Go微服务实战
上QQ阅读APP看书,第一时间看更新

4.1.5 defer关键字

在实际应用中,我们要确保在执行函数的过程中遇到报错时能及时处理一些必要的事情,比如关闭连接等。通常情况下,可以使用defer关键字来实现这些功能。

defer关键字用于释放资源,会在函数返回之前调用,即便函数崩溃也会在结束前调用defer。一般用法如下:


f,err := os.Open(fileName)
if err != nil{
    panic(err)
}
defer f.Close()

这样操作后,后面处理的代码即便报错,也会在结束前先执行文件关闭操作。

一个函数内也可以有多个defer,在调用的时候按照栈的方式先进后出,即写在前面的会后调用。