|
|
1
11
这里有四个类对象:
术语:
当您调用derived.class_方法时,ruby遵循“正确的一个然后向上”的规则:首先转到对象的类,然后沿着超类链向上,当找到该方法时停止:
你不认为我完全不知道这些,是吗?这就是我的大脑得到所有这些元juju的地方: Metaprogramming Ruby . 第2部分。 如何使一个“本征类”(又称“单体类”)走出隐藏
此方法将返回任何对象的特征类。现在,上课怎么样?这些也是物体。
注:以上为1.9卢布。在Ruby1.8下运行时,您会得到一个惊喜:
|
|
|
2
4
为了澄清和纠正我在评论中关于Ruby隐藏/暴露特征类的方式所写的内容,以下是情况: 红宝石1.8:
(1)
也就是说,
(2)
从上面看,
红宝石1.9:
(1)该
(2)
例如
|
|
|
3
3
此图说明了关系: http://banisterfiend.wordpress.com/2008/11/25/a-complete-ruby-class-diagram/ 此外,这里还有一些其他的文章,可以解释更多的特征分类的复杂性: http://www.klankboomklang.com/2007/10/05/the-metaclass/ http://www.klankboomklang.com/2007/09/21/the-singleton-class/ 这是一个相当困难的解释,你可能不想知道: http://banisterfiend.wordpress.com/2008/10/25/the-secret-life-of-singletons/ |
|
|
Arun Kaliraja Baskaran · 元类可以有方法吗? 8 年前 |
|
|
JanJJ · 企业架构师通过派生防止扩展元类 8 年前 |
|
|
Kallz · 在多处理中生成单例类 8 年前 |
|
|
DanielSank · 如何将修饰符应用于超类的方法? 11 年前 |