gpt4 book ai didi

ruby - 在 Ruby 中使用链表进行正确的垃圾收集?

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:09 24 4
gpt4 key购买 nike

I am currently studying this piece of code.它是一个用 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

这两个方法从列表中删除并返回一个节点。我不确定 Ruby 如何处理垃圾收集。您会注意到这两种方法都没有明确销毁它们试图删除的节点。

Ruby 是否足够聪明,可以在不明确告诉它这样做的情况下从内存中释放这个删除节点?

如果不够,如何正确销毁被移除的节点并释放内存?

最佳答案

当垃圾收集器运行时,它会发现 node 不再被应用程序中的对象引用,它将被释放。

您不需要手动销毁它。

关于ruby - 在 Ruby 中使用链表进行正确的垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9391076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com