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()
//其他操作
}