io.Closer 并需要显式关闭的资源。
示例:
func readFile() ([]byte, error) {
f, err := os.Open("data.txt") // 资源泄漏:未在所有路径上都关闭
if err != nil {
return nil, err
}
data, err := io.ReadAll(f)
if err != nil {
return nil, err // 'f' 在此处未关闭
}
f.Close()
return data, nil
}