人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Rubyの型変換
現在プログラミングの初歩の初歩を勉強している者です。
Rubyにおける型変換、
例えばPythonでいうところのstr(number)のような文法があるのかないのか、
教えていただきたいです。

数値を文字列に直すという方法は別に知っているのですが、
単に文法としてこういうものがあるのかどうかを知りたいです。
よろしくお願いいたします。

●質問者: 匿名質問者
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● 匿名回答1号
ベストアンサー

rubyでの型変換(キャスト)は以下のような感じです。

to_iメソッドは、文字列を10進数の表現と見なして整数に変換します。

文字列の先頭から10進数と見なせる部分を切り取って変換します。見なせる部分がなければ0を返します。

s = "1993"
puts s.to_i //1993

s = "12 Angry Men"
puts s.to_i //12

s = "cat"
puts s.to_i //0


引数baseで文字列が何進数を表しているかを指定できます。デフォルト値は10なので、引数を指定しないときは10進数になります。

baseを0とすると10進数になり、負の値を指定すると例外ArgumentErrorが発生します。

s = "1010"
puts s.to_i(2) //10

s = "0xa0"
puts s.to_i(16) //160

s = "gg"
puts s.to_i(17) //288

以下使い方は同様です。

hex : 16進数を整数に変換。
oct : 8進数を整数に変換。
to_f : 浮動小数点数に変換。
to_s (Fixnum) : 整数を文字列に変換。


匿名質問者さんのコメント
回答ありがとうございます。 ええと、to_iメソッド及びto_sメソッド自体は既に知っていたのですが、 やはりこうしないとRubyではキャストができないのですね。 他の言語だとキャスト用の文法が用意されているものが多く、 Pythonのstr(number)、Javaでの(String)number、PHPでの(string)$numberなどと 同等の文法はないのかなと思ったのです。 ないということがわかってすっきりしました。 ありがとうございます。

2 ● 匿名回答1号

ごめんなさい、さっきの回答になってなかっですね、質問最後まで読んでなかったです。rubyにはpython的なキャストの書き方はないと思います。


匿名質問者さんのコメント
ありがとうございます! すみません、私も上の回答だけ見て答えてしまいました。 こちらでも追加回答してくださりありがとうございます。 詳しい方にはっきりと「ない」と言ってほしかったので、 あなたの回答を得て非常にすっきりしました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ