我知道Fixnum该类继承自Integer该类.但它们之间的实际区别是什么?是否有任何用例我们有时使用Fixnum,有时使用Integer?
Jör*_*tag 67
更新:从Ruby 2.4开始,类Fixnum和Bignum类都消失了,只有Integer.完全相同的优化仍然存在,但它们被视为"适当的"编译器优化,即在幕后,对程序员来说是不可见的.
这有点令人困惑.Integer是你应该考虑的真正的课程.Fixnum基本上是一个性能优化,首先应该永远不会让程序员看到它.(将其与YARV中的flonum进行比较,它们完全作为VM内部的优化实现,并且从未向程序员公开过.)
基本上,Fixnums很快而且Bignums很慢(呃),并且实现自动在它们之间来回切换.你永远不会直接要求其中一个,你会得到一个或另一个,这取决于你的整数是否符合a的限制大小Fixnum.
mat*_*att 41
你永远不会"使用" Integer.它是一个抽象类,其工作是赋予其子(Fixnum和Bignum)方法.实际上在任何情况下你都不会要求一个对象的类,并被告知它是一个Integer.
| 归档时间: |
|
| 查看次数: |
18617 次 |
| 最近记录: |