【发布时间】:2013-05-13 15:16:47
【问题描述】:
我将一个类分配给一个常量Foo,并将Foo 重新分配给其他东西:
class Foo; end
Foo = nil
在main环境中,Foo指的是新分配的对象:
p Foo # => nil
但是,在某种迭代中,(我不确定是哪个)Foo 指的是前一个对象:
ObjectSpace.each_object(Class).select{|c| c.name == "Foo"}
.each{|c| p c, c.instance_of?(Class)}
# => Foo
true
这是为什么?
【问题讨论】:
-
这是 Jörg W Mittag 对我对this question 的回答的评论。