当前位置: 首页 > 面试题库 >

等效于Java finalize方法

郑俊彦
2023-03-14
问题内容

Go中是否有类似java finalize的方法?如果我有一个类似的类型结构

    type Foo struct {
        f *os.File
        ....
    }

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

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


问题答案:

runtime.SetFinalizeriirc。但是它被认为是一件坏事,并且不能保证在程序退出之前就可以运行

编辑:如下所述,当前os程序包已runtime.SetFinalizer在文件上调用。但是,SetFinalizer不应该依赖。作为一个示例,我有一个类似文件服务器的应用程序,但我忘记了关闭打开的文件。在GC选取并打开其终结器之前,该过程通常可以获取约300个打开的文件。



 类似资料:
  • 问题内容: 我正在从xml配置转移到注释。我想转换一个会话范围的bean是 可以通过注释完成此操作吗?如果没有,我该怎么做才能使该声明继续工作? 问题答案: 在spring上下文xml中,执行以下操作: 请注意,尽管如此,你将需要为该包中的所有类编写接口。

  • 问题内容: 我在Java中使用以下语句: 请提出等效的C#。 问题答案: 我不知道框架中执行此操作的任何内容,但是实现起来很容易: 或者,如果您要指定计数而不是开始/结束:

  • 问题内容: JavaScript中的方法返回给定索引处字符的数字Unicode值,例如 如何在Go中获取相同字符串/字母的数字unicode值? 问题答案: Go中的字符类型是别名,因此它已经是数字,只需打印即可。 您仍然需要一种方法来使角色位于指定位置。最简单的方法是将转换到一个你可以索引。要将a转换为符文,只需使用type conversion即可: 印刷品: 如果希望将其打印为字符,请使用格

  • 问题内容: 我编写了以下.NET Framework 3.5 C#方法,该方法获取XML文档的位置和X509数字证书(带有私钥)的对象表示形式,并将XML文档作为嵌入了XML签名(XMLDsig)的对象返回作为根的第一个子元素。 事实是,我迫切需要能够使用Java SE 6执行完全相同的过程,但是我很久没有写过任何Java了,也不知道从哪里开始。 谁能在Java代码中提供产生 完全相同的 XML输

  • 问题内容: 该表示法是: 实际上不哈希对象;它实际上只是转换为字符串(通过它是一个对象,还是其他各种原始类型的内置转换),然后在“ ”中查找该字符串,而不对其进行哈希处理。也不会检查对象是否相等-如果两个不同的对象具有相同的字符串转换,则它们将彼此覆盖。 鉴于此-在JavaScript中是否有任何有效的hashmap实现?(例如,第二个Google结果产生的实现对任何操作都是O(n)。其他各种结果

  • 问题内容: 我正在尝试从Swift的iTu​​nesU中的“开发适用于iPhone和iPad的ios7应用程序”中复制斯坦福Matchismo游戏。 在第3讲幻灯片的第77页上,它显示了使用,这不是Swift上的选项。Swift文档示例显示了一个具有数组的示例,但是我不知道如何使Interface Builder将多个插座连接到同一个/ Array。 有人知道如何做到这一点吗? 我知道我可以创建1