0

我正在尝试获取整数,但我正在获取“Fixnum”值。

例如:

arr = ["1", "2", "3", "4"]
arr.each do |a|
m = a.to_i
m.class.name

Result
=> Fixnum

根据上面的例子,我怎样才能得到整数值?Fixnum 只是一个整数,但在实现一个插件时,它会出现“请仅输入整数”之类的错误。

4

3 回答 3

14

在 Ruby 中,整数要么属于此类,要么Fixnum用于Bignum更大的数字。它们都继承自Integer类。

所以你已经得到了一个整数,不需要进一步转换它。

1.class #=> Fixnum
1.class.superclass #=> Integer

要将数组元素转换为整数,您可以这样做:

arr = ["1", "2", "3", "4"]
arr.map(&:to_i) #=> [1, 2, 3, 4]
于 2013-03-27T10:55:42.870 回答
0

所有Fixnum(S)都已经Integer。这是一些示例:

"12".to_i.class
#=> Fixnum
"12".to_i.integer?
#=> true
"12".to_i.to_int
#=> 12

以上都是可能的,因为-

"12".to_i.class.superclass
#=> Integer
于 2013-03-27T11:00:00.977 回答
0

Fixnum是标准整数的 ruby​​ 类。

具体来说,Integer 类涵盖了Fixnums 和Bignums,但老实说,这里没有什么可做的。

于 2013-03-27T10:55:12.280 回答