defer
关键字的实际用途是什么?
例如,而不是这样写:
func main() {
f := createFile("/tmp/defer.txt")
defer closeFile(f)
writeFile(f)
}
我可以这样写:
func main() {
f := createFile("/tmp/defer.txt")
writeFile(f)
closeFile(f)
}
那么,为什么我应该使用它而不是通常放置函数?
最佳答案
延迟函数总是会被执行,即使是在 panic 或 return 语句之后。
在现实世界的代码中,很多事情发生在 Open/Close 类型的调用对之间,而 defer 可以让您在源代码中将它们保持在一起,并且您不必为每个 return 语句重复 Close 调用。
去写一些真正的代码。 defer 的用处不久就会显而易见。
关于go - defer 的可能用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55888988/