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

Ruby 通过类的方法删除该类的实例,ruby,Ruby,我有一门关于棋盘上的棋子的课。我希望能够删除一个片段的实例,这样程序中指向该片段的任何其他内容都将指向nil 下面是我想做的最基本的代码版本: piece = Piece.new variable = piece variable #=> <Piece:0x0000000xxxxxxxx> piece.delete variable #=> nil piece=piece.new 变量=件 变量#=> 删除 变量#=>nil 这似乎是一项非常基本的任务,所以我觉得我遗

我有一门关于棋盘上的棋子的课。我希望能够删除一个片段的实例,这样程序中指向该片段的任何其他内容都将指向nil

下面是我想做的最基本的代码版本:

piece = Piece.new
variable = piece
variable #=> <Piece:0x0000000xxxxxxxx>
piece.delete
variable #=> nil
piece=piece.new
变量=件
变量#=>
删除
变量#=>nil
这似乎是一项非常基本的任务,所以我觉得我遗漏了一些明显的东西。我曾尝试为“self=nil”的类创建一个delete方法,但这会返回一个错误(“无法更改self的值”)

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

这是不可能的

首先,Ruby是一种面向对象的语言,这意味着所有的操作都是通过对象的消息来完成的,所有被操作的都是对象。变量不是对象,因此不能对其进行操作。(对变量唯一可以做的就是为它们赋值并取消引用。)


即使您可以操作变量,您仍然需要查找对所讨论对象的每个引用并将其删除,以便该对象符合“删除”(即垃圾收集)的条件.

也请展示你的作品类。Well这门课有150行长,而且是丑陋之王,所以我不认为发布整件事是非常可取的。我认为删除一个类的实例是一个相当普遍的问题,类的内容可能不是很相关,但是如果我知道什么可能是相关的,我可以发布其中的一些内容。没有必要发布该类。这都是关于是否能够从对象内部更改self,并在单个点删除对对象的所有引用。@llkin为什么不必查看实现?简单地说,即使他将类的实现更改为不同的实现,这个问题仍保留相同的含义。Hm。我试图通过删除对象来操纵它。对我来说,如果你能说“这个对象已经不存在了”,那么任何指向它的变量都不会指向任何东西。不涉及对变量的操作。但如果不可能的话,这就回答了我的问题。所以,谢谢