Ruby/Методика самопознания: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 153:
Метод "меньше" воспринимается Ruby, как вопрос "является ли потомком?", то есть первый пример можно расценить как вопрос вида: "класс Fixnum является ли потомком класса Numeric?" Если мы взглянем на иерархию наследования чисел, то увидим, что утвердительный ответ (<tt>true</tt>) на этот вопрос вполне оправдан.
 
Следуя той же логике, метод "больше" воспринимается как вопрос "является ли родителем?", то есть второй пример можно расценить как вопрос вида: "класс Object является ли родителем класса Integer?" Так как все классы наследованыунаследованы от класса <tt>Object</tt> (кроме самого <tt>Object</tt>), то утвердительный ответ (<tt>true</tt>) не должен нас сильно удивить.
 
Третий пример нам демонстрирует одну интересную особенность методов сравнения: если классы не состоят в отношениях "родитель-потомок", то они являются несравнимыми и поэтому метод сравнения отреагировал на эту ситуацию возвратом <tt>nil</tt>.