I am currently studying this piece of code. Rubyで実装されているリンクリストです。 私は特にこの2つの方法に興味があります。Rubyでリンクされたリストによる適切なガベージコレクション?
def removeLast
if @size <= 0
raise "No objects in list"
end
node = @last.prev
node.prev.next = @last
@last.prev = node.prev
@size -= 1
return node.object
end
def removeFirst
if @size <= 0
raise "No objects in list"
end
node = @first.next
node.next.prev = @first
@first.next = node.next
@size -= 1
return node.object
end
これらの2つのメソッドは、ノードを削除してリストから返します。 Rubyがガベージコレクションをどのように処理するのかよくわかりません。両方のメソッドが、削除しようとしているノードを明示的に破棄しないことに気づくでしょう。
明示的にそうするように言わずに、メモリからこの削除ノードを解放するのにRubyはスマートですか?
もし十分ではない場合、削除したノードを適切に破棄してメモリを解放するにはどうすればよいですか?
は、Rubyはそのスマートです知りませんでした!ありがとう –