スポンサーリンク
to_sメソッド
数値をレシーバにしてto_sメソッドを使うと、その数値を文字列に変換したオブジェクトが返される。
1 2 3 4 5 | num = 4 p num #=> 4 str = num.to_s p str #=> "4" |
スポンサーリンク
n進数の文字列表現
to_sメソッドの引数に数値nを渡せば、n進数の文字列表現に変換される。
↓は、4という数値を2進数で表す文字列(100)を出力している。
1 2 3 4 | num = 4 str = num.to_s(2) p str #=> "100" |
to_sメソッドの引数に渡せるのは、2から36までの整数値のみ。デフォルトでは10が渡されている。
数字はオブジェクト
Javaなんかではコード内で数字を書けば、int型の数値(整数値の場合)として扱われるが、Rubyではコード内に書いた数値はオブジェクトとして扱うことできる。。
整数値を表すクラスには、Integerクラスを継承したFixnumクラスとBignumクラスがあり、そのサイズによって自動的に切り替わる(その境目は環境に依存し、ほとんどのマシンでは31ビットまでがFixnumクラス)。
小数値はFloatクラスのオブジェクトになる。
「”」や「’」で囲んだ文字列はStringオブジェクトになる。
1 2 3 4 5 | p 123.class #=> Fixnum p 12.3.class #=> Float p "123".class #=> String p 10000000000000000000.class #=> Bignum |
※classメソッドは、レシーバのオブジェクトのクラス名を返す。
というわけで、数値をレシーバとして直接、操作することもできる。
1 | p 123.to_s #=> "123" |