Почему новый метод не нужен для создания Rational в ruby
Возможный дубликат:
Вопрос о синтаксисе Ruby: Rational(a, b) и Rational.new!(A, b)
Я нахожусь в процессе чтения рубиновой книги кирки, и я запутался в синтаксисе создания рациональных чисел.
Rational(3,4) * Rational(1,2)
производит
=> 3/8
Почему new
метод не нужен для Rational
(Я также заметил, например, я могу создать строку без нового метода)?
2 ответа
Во-первых, у Руби нет new
ключевое слово. new
это метод класса, который есть у всех классов (они наследуют его от Class
), который создает объект этого класса. Когда вы видите что-то вроде Rational(3,4)
, Rational
на самом деле просто частный метод Object
(определено в Kernel
) что делает создание рациональных чисел проще. Для получения дополнительной информации об этих методах конструктора см. Мой ответ: /questions/24375489/gde-nahoditsya-dokumentatsiya-dlya-array/24375500#24375500
Это метод, имя которого совпадает с именем класса. Это распространенная идиома в Ruby.