1
我知道分配给Constant的对象不能被垃圾回收。 (“Ruby中的常量永远不会被垃圾收集,所以如果一个常量有一个对象的引用,那么这个对象就永远不会被垃圾收集。” - https://www.sitepoint.com/ruby-uses-memory/)在ruby中,分配给类方法中变量的对象是否可以被垃圾回收?
但是我试图弄清楚我的安心一般情况下其他事情永远不会被垃圾收集。
特别是,分配给类方法中的普通变量的对象是否可以被垃圾回收?例如:
class Foo
def self.bar
array = []
1000.times { array << 'string' }
end
end
Foo.bar之后被调用时,可以将这些串1000被垃圾收集,或做他们流连,因为它们存储针对“数组”变量?
如果数组是@array
或@@array
,会出现什么情况?
变量'array'拥有的对象没有被引用超出该方法的范围,所以是的,一旦该方法完成,它将被垃圾收集。 –