ruby meta: Class.superclass.class == Класс - PullRequest
3 голосов
/ 01 ноября 2011
irb(main):101:0> Class.superclass
=> Module
irb(main):102:0> Class.superclass.class
=> Class
irb(main):103:0> Class.superclass.class == Class
=> true

По наследованию, класс По метаклассу (или любому другому термину?), Class , Module , Object и BasicObject являются экземплярами Class .

irb(main):109:0> Module.class
=> Class
irb(main):172:0> Object.class
=> Class
irb(main):173:0> BasicObject.class
=> Class
irb(main):174:0> Class.class
=> Class

Как понять это отношение между классом и классом, модулем, объектом, BasicObject?
Я прочитал обсуждение метапрограммирования для ruby, но любой ресурс, рассказывающий об этом конкретном вопросе, пожалуйста?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 01 ноября 2011

Я думаю, что это может сначала сбить вас с толку, но после того, как вы это поймете, тогда вы ясно увидите другое. Я бы предложил посмотреть эти ресурсы:

1 голос
/ 03 ноября 2011

Это действительно интересный вопрос.Вот ссылка на книгу, которая помогла мне ясно это понять: Метапрограммирование Ruby

1 голос
/ 01 ноября 2011

Вот видео-разговор на Ruby innerals . Это стоит посмотреть и может кое-что прояснить.

...