2015-03-13 60 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類沒有關係。