gpt4 book ai didi

go - Java finalize 方法的等价物

转载 作者:IT王子 更新时间:2023-10-29 01:10:15 25 4
gpt4 key购买 nike

Go中有java finalize之类的方法吗?如果我有一个像

这样的类型结构
    type Foo struct {
f *os.File
....
}

func (p *Foo) finalize() {
p.f.close( )
}

如何确保当对象被垃圾回收时,文件被关闭?

最佳答案

您也不会在 Java 中这样做。在 Java 中正确的做法是使用 finally block 将其关闭在您打开的位置附近。

您可以在 go 中使用类似的模式和 defer 函数来进行清理。例如,如果您这样做 (java):

try {
open();
// do stuff
} finally {
close();
}

在开始时,你会这样做:

open();
defer close();
// do stuff

关于go - Java finalize 方法的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4636817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com