如果我获取了一些可关闭的资源(例如*os.File
(并将其分配给空白标识符(_
(,该怎么办?根据SO的回答,无法访问此变量,因此它将在生成的程序中进行优化。但它会正确关闭吗?下面的代码示例。
func check(path string) bool {
_, err := os.Open(path)
if err != nil {
return true
}
return false
}
无论将文件分配给空白标识符还是命名变量,如果不显式调用其Close()
方法,它都不会关闭,并且会泄漏资源。
如果将返回的*os.File
分配给空白标识符,则无法引用它,因此无法调用其Close()
方法。所以不要这么做。