defer
- 确保在函数结束时发生
- 参数在defer语句计算
- defer先进后出
func writeFib(fileName string) {
file, err := os.Create(fileName)
if err != nil {
panic(err)
}
defer file.Close()
wartier := bufio.NewWriter(file)
defer wartier.Flush()
f := fib.Fibonacci()
for i := 0; i < 20; i++ {
fmt.Fprintln(wartier, f())
}
}
func main() {
writeFib("textDome.txt")
}
使用
- Open / Close
- Lock / UnLock
- PrintHeader / PrintFooter
本文介绍如何使用Go语言中的defer语句来优化文件操作等资源管理任务,通过示例代码展示defer在函数结束时确保资源释放的机制,以及其先进后出的特性。

被折叠的 条评论
为什么被折叠?



