Почему в Ruby есть Numeric.new? - PullRequest
       1

Почему в Ruby есть Numeric.new?

5 голосов
/ 05 октября 2010
a = Numeric.new  # doesn't take an argument

Я не могу представить вариант использования для этого.Вы можете?

Ответы [ 3 ]

3 голосов
/ 05 октября 2010

Класс Class определяет метод экземпляра new. Таким образом, метод класса new на Numeric является лишь пережитком этого - он ничего не делает - думайте о нем как об одном из тех рудиментарных органов, которые животные наследуют от далекого предка - как приложение к людям. 1005 *

Обратите внимание, что подклассы Numeric, такие как Fixnum и Float и их род, явно не определяют метод new. Я думаю, они просто не потрудились определить его для Numeric, так как прямых экземпляров этого класса на самом деле никогда не существует, и это не причинит вреда.

1 голос
/ 05 октября 2010

Вы никогда не будете использовать числовой класс таким способом. Это базовый класс для всех числовых типов в Ruby.

Числовые классы Ruby образуют полный числовая башня, обеспечивающая много видов представления чисел и числовые представления.

Источник: Ruby Советы: Числовые классы

1 голос
/ 05 октября 2010

Все в Ruby - это объект, даже классы.Поэтому отсутствие конструктора для Numeric означало бы, что класса Numeric нет вообще!

Взгляните на документы .Это просто базовый класс.Вы бы никогда (ну, в любом случае, это было бы крайне маловероятно :)) использовали его напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...