2015-03-13 71 views
0
  1. Integer(543543534)如何工作Integer是 类?它似乎并不与每类工作:General Ruby转换

    Numeric '4532432' 
    #=> NoMethodError: undefined method `Numeric' for main:Object 
    
  2. 有从SomeClass构造一类SomeClass的一个实例的一般方法和串'somestring'除了想SomeClass.new('somestring')或定义#to_X

+1

'Integer'必须是一个方法,所以让我们看看它来自哪里:'method(:Integer).owner#=> Kernel'。嗯,[Kernel#Integer](http://ruby-doc.org/core-2.2.0/Kernel.html#method-i-Integer)。 – 2015-03-13 19:47:47

+0

是的,Q#1是一个愚蠢的问题。谢谢! – PSkocik 2015-03-13 20:06:05

回答

2
  1. 你的假设不成立。 Integer不是那里的一类。
  2. 您必须将其定义为一种方法(在Kernel中)。
+0

感谢您的信息。 – PSkocik 2015-03-13 16:39:55

2

当你调用Integer(543543534),你调用Kernel#Integer方法,它转换参数FixnumBignumKernel模块正在包含Object,所以这只是一个方法调用Object,它与Integer类没有关系。