将对象设置为nil是否常见?

时间:2013-01-01 02:09:41

标签: ruby

我正在构建一个应用程序并想知道是否设置了一个未使用的对象 nil是生产级编码的常见做法。

据我所知,这只是垃圾收集器的一个提示,并不会总是丢弃一个对象。

3 个答案:

答案 0 :(得分:9)

根据此thread

如果使用成员对象将其设置为nil,则会引发被引用的对象被垃圾回收。如果它是局部变量,则方法exit将执行相同的操作。

如果您要求将成员明确设置为nil,我会质疑您的设计。

答案 1 :(得分:1)

不,这不常见。只有极少数情况下,您将对象显式设置为nil。

例如,在某些数据结构的实现中,将对象设置为nil是有意义的。假设您实现了缓存,并提供了删除密钥的方法。让我们进一步假设缓存内部使用一个数组来保存对已删除对象的引用。然后建议删除对已删除对象的所有引用,方法是将它们设置为nil。

然而,在实践中,这些情况并不经常发生。

答案 2 :(得分:0)

您不需要做任何事情来为垃圾收集器提供任何提示。只需使用足够内存效率的算法,它将为您完成其余的工作。