【发布时间】:2012-11-17 01:19:22
【问题描述】:
当不再有变量指向对象时,对象会发生什么特别的事情吗?除了有资格进行垃圾收集之外,就是这样。
例如,目前,IO 对象会自动关闭when they're garbage collected,如果它们还没有这样做的话。即使您想更改此行为,也没有任何方法可以更改它以便在没有更多变量指向对象时发生自动关闭,是吗?
(我的问题稍微简单了一点:WeakRef 允许变量指向对象并将它们作为垃圾收集的目标。此外,对于某些人来说,可以访问没有任何变量指向它们的对象Ruby 的实现,通过使用 ObjectSpace。关于 IO 对象,有类似IO.open(&block) 的东西会在块执行后自动关闭 IO 对象。)
【问题讨论】:
-
作为回报,我的问题是,您是否正在解决问题,或者这是学术/好奇心?我希望看到一些显示问题/好奇心的代码示例。
-
您可以根据需要关闭 GC。
-
@theTinMan 我试图在stackoverflow.com/questions/764134/… 回复评论,但我对评论的回复只有 95% 的把握。
标签: ruby variables object reference