Как
Integer(543543534)
работа, учитывая, чтоInteger
является класс? Это не похоже на работу с каждым классом:преобразования Общие РубиновыеNumeric '4532432' #=> NoMethodError: undefined method `Numeric' for main:Object
Есть ли общий способ построения экземпляра класса
SomeClass
изSomeClass
и строки'somestring'
кроме того пытаетсяSomeClass.new('somestring')
или определения#to_X
?
0
A
ответ
2
- Ваше предположение не выполняется.
Integer
не является классом. - Вы должны определить это как метод (в
Kernel
).
+0
Спасибо за информацию. – PSkocik
2
При вызове Integer(543543534)
, вы вызываете Kernel#Integer
метод, который преобразует аргумент Fixnum
или Bignum
. И модуль Kernel
включен Object
, так что это всего лишь вызов метода на Object
, он не связан с классом Integer
.
'Integer' должен быть методом, поэтому давайте посмотрим, откуда он исходит:' method (: Integer) .owner # => Kernel'. Ах, [Ядро # Целое] (http://ruby-doc.org/core-2.2.0/Kernel.html#method-i-Integer). –
Yup, Q # 1 был глупым вопросом. Благодаря! – PSkocik