【发布时间】:2016-12-06 16:15:57
【问题描述】:
为什么要像这样返回数字的 ruby size 函数?
1000000.size # => 8
99999999999999999999.size # => 9
【问题讨论】:
-
如果您能准确地指出您不了解
size方法文档的哪一部分,这将对Ruby 作者有很大帮助,以便他们改进供未来的读者阅读。
为什么要像这样返回数字的 ruby size 函数?
1000000.size # => 8
99999999999999999999.size # => 9
【问题讨论】:
size 方法文档的哪一部分,这将对Ruby 作者有很大帮助,以便他们改进供未来的读者阅读。
Ruby 在内部使用两种不同的结构来存储整数 - Fixnum 和 Bignum。第一个用于较小的数字,并直接映射到主机架构上的长整数。它的速度更快且大小恒定,但可以存储的数量有限。后者用于存储任意大的数字,其大小取决于数字的大小。
1000000.class # => Fixnum
99999999999999999999.class # => Bignum
转换是在内部完成的。事实上,在 ruby 2.4.0 中,只有一个类 - Integer。
【讨论】: