通过该类的方法删除类的实例

时间:2015-03-02 07:18:47

标签: ruby

我在电路板上有一个课程。我希望能够删除Piece的一个实例,以便程序中指向该部分的任何其他东西只指向nil。

以下是我想要做的基本代码版本:

piece = Piece.new
variable = piece
variable #=> <Piece:0x0000000xxxxxxxx>
piece.delete
variable #=> nil

这似乎是一项非常基本的任务,所以我觉得我错过了一些明显的东西。我尝试使用“self = nil”为类创建一个删除方法,但这会返回一个错误(“无法更改self的值”)。

到目前为止,我刚刚通过更新指向我的“删除”方法中的对象的其他内容来解决这个问题,但似乎应该有更好的方法。

1 个答案:

答案 0 :(得分:3)

这是不可能的。

首先,Ruby是一种面向对象的语言,这意味着所有操作都是通过对象的消息完成的,所有操作都是对象。变量不是对象,因此您无法操纵它们。 (你可以用变量做的唯一事情是给它们赋值并取消引用它们。)

即使如果你可以操纵变量,你仍然需要搜索每个对相关对象的引用并将其删除,以使对象有资格进行“删除”(即垃圾收集)。