12345.class在Ruby中返回'Integer'而不是'Fixnum'

The*_*ewy 4 ruby integer class

在Ruby教程中,当你输入一个数字时,我正在看.class它返回Bignum或者Fixnum.

当我这样做时,我得到了Integer:

12345.class
#=> Integer
Run Code Online (Sandbox Code Playgroud)

我在mac上的命令行中使用irb.为什么以上不会Fixnum像在教程中那样返回?

Urs*_*sus 8

这取决于Ruby版本.从Ruby 2.4.0我们只有Integers,没有Fixnums和Bignums的区别

https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/

  • 另请注意,在pre-ruby 2.4中,类"Fixnum"和"Bignum"都从类"Integer"继承**.因此,代码:`12345.is_a?(Integer)`将始终返回所有ruby版本的`true`. (3认同)