class Class - 实例与类方法

时间:2011-10-03 18:23:01

标签: ruby

这是如何工作的?运行以下内容时,"hi from class"将打印两次。在ruby里面发生了什么让这个行为像这样?我实际上不是为类

制作实例方法
class Class
  def foo
    puts "hi from class" 
  end
end

Class.foo
x = Class.new
x.foo

1 个答案:

答案 0 :(得分:9)

我不知道您是否意识到这一点,但当您执行class Class ... end时,您没有创建名为Class的新类,而是重新打开现有的类{{ 1}}。

由于Class是所有类都是实例的类,因此Class是其自身的实例。因此,您可以直接在Class上调用Class的任何实例方法,就像在任何其他类上一样。