Я прочитал некоторую статью о сборщике мусора Ruby, и многие упоминали о том, что объект круговой ссылки не может быть очищен. В этой статье упоминается циклическая ссылка, но я Не уверен, что это вызовет проблему. Кто-нибудь может привести несколько примеров того, как создавать круговые ссылки?
1 ответ
Я прочитал некоторую статью о сборщике мусора Ruby, и многие упоминали о том, что объект круговой ссылки не может быть очищен.
Это абсолютно не так.
Кто-нибудь может привести несколько примеров того, как создавать круговые ссылки?
Наиболее банально вот так:
arr1 = []
arr2 = [ arr1 ]
arr1 << arr2
Однако, как я сказал (и как указывает ответ на вопрос, который вы связали), у Ruby GC не будет абсолютно никаких проблем со сбором arr1
и arr2
после того, как они выйдут за пределы области видимости.
Похожие вопросы
Связанные вопросы
Новые вопросы
ruby
Ruby - это многоплатформенный динамический объектно-ориентированный интерпретируемый язык с открытым исходным кодом. Тег [ruby] предназначен для вопросов, связанных с языком Ruby, включая его синтаксис и его библиотеки. Вопросы Ruby on Rails должны быть помечены [ruby-on-rails].