本文记录在《ruby 元编程》这本书中学到的一些知识点。
对象模型
class 关键字
这个关键字更象是一个作用域操作符而不是类型声明语句,它的核心任务是将代码带到类的上下文中,可以从这个角度理解 open class
模块的实现
以下面的代码为例
1 2 3 4 5 6 7 |
|
实际情况下,ruby 将生成一个匿名类来封装模块 X ,在最终的继承链上,这个匿名类将在包含 X 的类 A 之上,这样,类 B 的继承链就是
1
|
|
* 以上细节在 superclass 这个 api 上反映不出来,不过每个类可以调用自己的 ancestors 方法看到细节
1 2 |
|
* 多个 include 的情况
1 2 3 4 5 6 7 8 9 10 11 12 |
|