singleton_class in Ruby

Database and Ruby, Python, History


Singleton Class 元类

元类其实也是一个Class,在《Ruby原理剖析》里面,元类和类的关系如下图。

img

实例euler,可以通过class得到它对应的类MathematicianMathematician可以通过superclass找到父类,也可以通过singleton_class找到元类。实例方法是在superclass这个继承链中查找的,类方法是在singleton_class这条继承链中查找的。

下图是《Ruby元编程》中描述的方法查找过程。

img

感觉学习Ruby,只需要看完这两本书,就对Ruby有非常深的理解了。