它是如何工作的呢?运行以下命令时,将打印"hi from class"两次。在ruby内部发生了什么,使得它表现成这样?实际上,我不是在为class创建一个实例方法吗
class Class
def foo
puts "hi from class"
end
end
Class.foo
x = Class.new
x.foo发布于 2011-10-04 02:28:03
我不知道您是否意识到这一点,但是当您执行class Class ... end时,您并不是在创建一个名为Class的新类,而是在重新打开现有的类Class。
由于Class是所有类都是其实例的类,这意味着Class是其自身的一个实例。正因为如此,您可以直接在Class上调用Class的任何实例方法,就像在任何其他类上一样。
https://stackoverflow.com/questions/7639041
复制相似问题