defer关键字(参看6.4)对于在函数结束时关闭打开的文件非常有用,例如下面的代码片段:
defer
func data(name string) string { f := os.Open(name, os.O_RDONLY, 0) defer f.Close() // idiomatic Go code! contents := io.ReadAll(f) return contents }
在函数return时执行了f.Close()
f.Close()