defer函数用于用于文件资源关闭,数据库等连接关闭行为。
处理文件资源释放回收
通过defer函数可以简洁优雅处理资源回收问题,避免复杂的代码逻辑情况下,遗漏忽视相关的资源回收问题。
下面的代码,目的是复制文件内容到一个新文件
func Copy(dstFile, srcFile string) (written int32, err error) {
src, err := os.Open(srcFile )
if err != nil {
return
}
defer src.Close()
dst, err := os.Create(dstFile)
if err != nil {
return
}
defer dst.Close()
return io.Copy(dst, src)
}