如果我运行此代码:
package main
import "os"
func pass() bool { return false }
func main() {
f, e := os.Create("file.txt")
if e != nil {
panic(e)
}
defer f.Close()
if ! pass() {
e := os.Remove("file.txt")
if e != nil {
panic(e)
}
}
}
我得到这个结果:
The process cannot access the file because it is being used by another process.
如果我这样做,我会得到预期的结果:
defer f.Close()
if ! pass() {
f.Close()
e := os.Remove("file.txt")
if e != nil {
panic(e)
}
}
但如果可能的话,我想避免重复。该文件始终需要关闭,但如果某些功能失败,也需要删除该文件。是否有更好的方法可用于我正在尝试做的事情?响应注释:文件将从多个 HTTP 请求写入。第一个请求可能通过,第二个请求失败。Close()
慕斯709654
相关分类