Я смущен этими двумя классами, когда читал документ модуля. Прежде всего, я увидел, что есть способ установить именованную константу для данного объекта.Объект и модуль Ruby
Object.const_set("FOO", 40)
Но я проверить рубиновый документ, не существует в Object методе нет const_set
, тогда я узнал, что это было определено в Module.
Я думал, что Object
является корнем по умолчанию всех объектов Ruby. Почему он может использовать метод модуля? Я смущен насчет отношений между ними.
Вот подсказка: если вы звоните '«Hello'.upcase', где бы вы посмотрите на 'upcase' метод ... в строке'»Hello'' или в своем классе (' String') и его суперклассы? Теперь, если вы вызываете 'Object.const_set', где бы вы искали метод' const_set' ... в классе 'Object' или в его классе (' Class') и его суперклассах? –