Constant에 할당 된 객체를 가비지 수집 할 수 없다는 것을 알고 있습니다. ("루비 상수 상수 개체에 대한 참조가있는 경우, 그 객체가 가비지 수집되지 않을 수 있습니다 수집 결코 쓰레기입니다."- https://www.sitepoint.com/ruby-uses-memory/)루비에서는 클래스 메소드의 변수에 할당 된 객체를 가비지 수집 할 수 있습니까?
그러나 나는 내 마음의 평화를 위해 선명도를 얻으려고 다른 것들은 결코 쓰레기 수거되지 않을 것입니다.
특히 클래스 메소드의 일반 변수에 할당 된 객체를 가비지 수집 할 수 있습니까? 예를 들면 : Foo.bar 후
class Foo
def self.bar
array = []
1000.times { array << 'string' }
end
end
가 그 1000 문자열이 쓰레기 수집 할 수있다,라고, 또는 그들이이 '배열'변수에 저장되어 있기 때문에 놀아해야합니까입니까?
배열이 @array
또는 @@array
인 경우 어떻게됩니까?
변수'array'가 보유하고있는 객체는 메소드의 범위를 벗어나서 참조되지 않으므로 메소드가 완료되면 가비지 수집됩니다. –