go 语言 defer

defer 的特点:

1. 当函数返回时,执⾏defer语句。因此,可以⽤来做资源清理
2. 多个defer语句,按先进后出的⽅式执⾏

func testdefer2(){
	for i:=0;i<5;i++{
		defer fmt.Println(i)
	}
}
//输出结果
4
3
2
1
0

defer的用途

1. 关闭⽂件句柄
func read() {
file := open(filename)
defer file.Close()
//⽂件操作
}

2. 锁资源释放
func read() {
mc.Lock()
defer mc.Unlock()
//其他操作
}

3.数据库连接释放
func read() {
conn := openDatabase()
defer conn.Close()
//其他操作
}

原文地址:https://www.cnblogs.com/wanghaijun999/p/8194201.html