我一直在尝试删除一个类实例。这就是我想要的:
class SomeClass
def initialize
some_stuff
end
def delete
self.delete
end
end
致电SomeClass_instance.delete
告诉我:
SystemStackError: stack level too deep
如果没有定义delete
方法,它会给我一个NoMethodError
。
我尝试的一切都给了我错误或什么也没做。如果有人可以解释如何删除类实例,或者是否有可能,那将是很好的。
答案 0 :(得分:1)
当您使用garbage-collection
标记请求时,我假设您尝试执行的操作类似于C中的free
。
Ruby中的垃圾收集会自动发生。一旦对象不再被引用到内存中的任何位置,对象使用的内存将在下一个GC循环中重新收集。
您无需手动释放内存。只要确保不在变量中保存对象的引用,尤其是在超出方法范围的变量中,例如全局变量,实例变量或类变量。