整数を取得しようとしていますが、「Fixnum」値を取得しています。
例:
arr = ["1", "2", "3", "4"]
arr.each do |a|
m = a.to_i
m.class.name
Result
=> Fixnum
上記の例によると、どうすれば整数値を取得できますか? Fixnum は整数のみですが、プラグインを 1 つ実装すると、「整数のみを入力してください」のようなエラーが発生します。
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
標準整数の ruby クラスです。
具体的に言うと、Integer クラスはFixnum
s とBignum
s の両方をカバーしていますが、正直なところ、ここで行うことは何もありません。
すべて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