2 个回答
defer 在函数退出时才能执行,在 for 执行 defer 会导致资源延迟释放。
func main() {
for i := 0; i < 5; i++ {
func() {
f, err := os.Open("/path/to/file")
if err != nil {
log.Fatal(err)
}
defer f.Close()
}()
}
}
func 是一个局部函数,在局部函数里面执行 defer 将不会有问题。发布于:5个月前 (11-29) IP属地:四川省
我来回答
您需要 登录 后回答此问题!