defer函(han)數(shu)用于用于文件資源(yuan)關閉,數(shu)據庫等連接關閉行為。
處理文件資源釋放回收
通過defer函數可以簡潔優(you)雅處(chu)理資源回收問題,避免復雜(za)的代碼邏(luo)輯情況下,遺漏忽視相關(guan)的資源回收問題。
下面的(de)代碼,目的(de)是復制文(wen)件內容到一個新文(wen)件
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)
}