在我使用.class
输入数字的Ruby教程中,它会返回Bignum
或Fixnum
。
当我这样做时,我得到Integer
:
12345.class
#=> Integer
我在mac上的命令行中使用irb。为什么以上内容不像教程中那样返回Fixnum
?
答案 0 :(得分:8)
这取决于Ruby版本。从Ruby 2.4.0开始,我们只有Integer
s,不再有Fixnum
s和Bignum
的区别
https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/
答案 1 :(得分:0)
你应该得到一个更好的教程。
Ruby only 保证名为Integer
的类存在。它允许特定于实现的Integer
子类,并且强制 >存在,然后Integer
必须完全抽象,但它不强制存在那些特定于实现的子类。
我换句话说:
Integer
永远存在。Integer
的特定于实现的子类可能存在也可能不存在。Bignum
和Fixnum
。您使用的教程完全错误(或至少过时)。至少自2009年ISO Ruby语言规范的初稿以来,这已被正式记录,但在此之前就已如此。