Go中是否有类似java finalize的方法?如果我有一个类似的类型结构
type Foo struct { f *os.File .... } func (p *Foo) finalize() { p.f.close( ) }
如何确保在垃圾回收对象时关闭文件?
runtime.SetFinalizeriirc。但是它被认为是一件坏事,并且不能保证在程序退出之前就可以运行
runtime.SetFinalizer
编辑:如下所述,当前os程序包已runtime.SetFinalizer在文件上调用。但是,SetFinalizer不应该依赖。作为一个示例,我有一个类似文件服务器的应用程序,但我忘记了关闭打开的文件。在GC选取并打开其终结器之前,该过程通常可以获取约300个打开的文件。
os
SetFinalizer