1.golang defer语句
go语言中的defer
语句会将其后面跟随的语句进行延迟处理。在defer
归属的函数即将返回时,将延迟处理的语句按defer
定义的逆序进行执行,也就是说,先按defer
的语句最后执行,最后被defer
的语句,最先被执行。
1.1 defer特性
1.关键字defer
用于注册延迟调用
2.这些调用直到return
前才被执行。因此,可以用来做资源清理
3.多个defer
语句,按先进后出的方式执行
4.defer语句中的变量
,在defer
声明时就决定了
1.2 defer用途
1.关闭文件句柄
2.锁资源释放
3.数据库连接释放
案例
go
func main() {
fmt.Println("start")
defer fmt.Println("set1")
defer fmt.Println("set2")
defer fmt.Println("set3")
fmt.Println("end")
}
func main() {
fmt.Println("start")
defer fmt.Println("set1")
defer fmt.Println("set2")
defer fmt.Println("set3")
fmt.Println("end")
}