我正在尝试获取整数,但我正在获取“Fixnum”值。
例如:
arr = ["1", "2", "3", "4"]
arr.each do |a|
m = a.to_i
m.class.name
Result
=> Fixnum
根据上面的例子,我怎样才能得到整数值?Fixnum 只是一个整数,但在实现一个插件时,它会出现“请仅输入整数”之类的错误。
在 Ruby 中,整数要么属于此类,要么Fixnum
用于Bignum
更大的数字。它们都继承自Integer
类。
所以你已经得到了一个整数,不需要进一步转换它。
1.class #=> Fixnum
1.class.superclass #=> Integer
要将数组元素转换为整数,您可以这样做:
arr = ["1", "2", "3", "4"]
arr.map(&:to_i) #=> [1, 2, 3, 4]
所有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
Fixnum
是标准整数的 ruby 类。
具体来说,Integer 类涵盖了Fixnum
s 和Bignum
s,但老实说,这里没有什么可做的。