如果我獲得一些可關閉的資源(例如*os.File)并將其分配給空白識別符號(_)怎么辦?根據this SO answer,無法訪問此變數,因此它將從結果程式中進行優化。但是它會正確關閉嗎?下面的示例代碼。
func check(path string) bool {
_, err := os.Open(path)
if err != nil {
return true
}
return false
}
uj5u.com熱心網友回復:
無論是將檔案賦值給空白識別符號還是命名變數,如果不顯式呼叫其Close()方法,都不會被關閉,并且會泄漏資源。
如果將回傳的值分配給*os.File空白識別符號,則無法參考它,因此無法呼叫其Close()方法。所以不要這樣做。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/365979.html
