摘自维基图书Ruby Programming/Overview强:
当我说每个Ruby对象都有一个类时,我撒谎了.事实是,每个对象都有两个类:"常规"类和单例类.对象的单例类是一个无名类,其唯一实例是该对象.每个对象都有自己的单例类,与对象一起自动创建.Singleton类继承自其对象的常规类,最初为空,但您可以打开它们并向其中添加方法,然后可以在属于它们的唯一对象上调用这些方法.
This is Ruby’s secret trick to avoid “class methods” and keep its type system simple and elegant
个
上面这段话说的是Ruby避开类方法的秘诀.我不明白作者在这里是什么意思.Ruby在哪里阻止我们避免使用类方法?下面是一个示例,请看下面的示例
class Raj
def self.hi
puts 'Hi'
end
def hello
puts 'hello'
end
end
object=Raj.new
object.hello
Raj.hi
正如您在前面的示例中所看到的,仍然可以创建类方法. 是? 我知道Ruby中没有真正的类方法;相反,它们是为Raj对象创建的方法. 但是,无论如何,它让我可以创建方法"hi",对吗? 那么,当它说‘这是Ruby避免"类方法"并保持其类型系统简单优雅的秘诀时,这是什么意思呢?