2015-03-13 2 views
0
  1. Как Integer(543543534) работа, учитывая, что Integer является класс? Это не похоже на работу с каждым классом:преобразования Общие Рубиновые

    Numeric '4532432' 
    #=> NoMethodError: undefined method `Numeric' for main:Object 
    
  2. Есть ли общий способ построения экземпляра класса SomeClass из SomeClass и строки 'somestring' кроме того пытается SomeClass.new('somestring') или определения #to_X?

+1

'Integer' должен быть методом, поэтому давайте посмотрим, откуда он исходит:' method (: Integer) .owner # => Kernel'. Ах, [Ядро # Целое] (http://ruby-doc.org/core-2.2.0/Kernel.html#method-i-Integer). –

+0

Yup, Q # 1 был глупым вопросом. Благодаря! – PSkocik

ответ

2
  1. Ваше предположение не выполняется. Integer не является классом.
  2. Вы должны определить это как метод (в Kernel).
+0

Спасибо за информацию. – PSkocik

2

При вызове Integer(543543534), вы вызываете Kernel#Integer метод, который преобразует аргумент Fixnum или Bignum. И модуль Kernel включен Object, так что это всего лишь вызов метода на Object, он не связан с классом Integer.