为什么ruby中的整数名为Fixnum?

Dor*_*ian 3 ruby history naming

我想知道为什么Ruby命名它Fixnum; 其他语言将其命名为Integer,Int,Number等.我看到了,Fixnum < IntegerBignum < Integer,Integer < NumericFloat < Numeric.我想这是因为它的大小:

1.class => Fixnum
(10**100).class => Bignum
Run Code Online (Sandbox Code Playgroud)

文档:

保存可以在本机机器字(减1位)中表示的整数值.如果Fixnum上的任何操作超出此范围,则该值将自动转换为Bignum

为什么这个名字Fixnum?我想过固定数字,但它没有固定,也没有固定的大小数字.

Chu*_*uck 8

这不是Ruby提出的 - 术语"fixnum"来自Lisp.就像在Ruby中一样,Lisp中的fixnum是一个可以用机器整数表示的数字.虽然我从来没有见过证明我是对的主要来源,但我总是假设这个名称的"修复"部分提到它只能代表一个固定的数字范围,与无限的bignum形成鲜明对比. (以牺牲性能更差为代价获得自由限制).

  • @Chuck我可能错了,但我认为术语"固定"与"浮动"相反:小数点是否移动.我认为,fixnum和bignum之间的对立已经过去了. (2认同)