分配给空白标识符是否会导致Go中的资源泄漏



如果我获取了一些可关闭的资源(例如*os.File(并将其分配给空白标识符(_(,该怎么办?根据SO的回答,无法访问此变量,因此它将在生成的程序中进行优化。但它会正确关闭吗?下面的代码示例。

func check(path string) bool {
_, err := os.Open(path)
if err != nil {
return true
}
return false
}

无论将文件分配给空白标识符还是命名变量,如果不显式调用其Close()方法,它都不会关闭,并且会泄漏资源。

如果将返回的*os.File分配给空白标识符,则无法引用它,因此无法调用其Close()方法。所以不要这么做。

最新更新