Go 语言中有一个非常有用的保留字 defer,它可以调用一个函数,该函数的执行被推迟到包裹它的函数返回时执行. defer 语句调用的函数,要么是因为包裹它的函数执行了 return 语句,到达了函数体的末端,要么是因为对应的 goroutine 发生了 panic. 在实际的 go 语言程序中,defer 语句可以代替其它语言中 try-catch- 的作用,也可以用来处理释放资源等收尾操作,比如关闭文件句柄.关闭数据库连接等. 1. 编译器编译 defer 过程 defer dosomet…