すでにメンバーの場合は

無料会員登録

GitHubアカウントで登録 Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

登録がまだの方はこちらから

Pikawakaにログイン

GitHubアカウントでログイン Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

Ruby

【Ruby】 to_sメソッドの使い方を理解しよう

ぴっかちゃん
ぴっかちゃん

to_sメソッドとは、文字列以外のオブジェクトを文字列オブジェクトに変換するメソッドです。

to_sメソッドの構文 -->
1
オブジェクト.to_s

例えば、以下のようにnumという変数に数字の1を代入してnumを出力すると「1」が出力されます。

irb | to_sメソッドの使用例 -->
1
2
3
4
5
6
num = 1
p num
=> 1

num.to_s
=> "1"

このnumに対し、to_sメソッドを使った結果は"1"と文字としての1として出力されます。このようにto_sメソッドを使用すると、数値オブジェクトなどを文字列オブジェクトに変換することが出来ます。

to_sメソッドとは?使う場面とは?

to_sメソッドの使用する場面やその他の変換系のメソッドを解説します。

どんな時に使うか

例えば下記のようなコードがあるとします。

文字列の結合のコード -->
1
2
num = 25
puts "私は" + num + "歳です。"

このコードを実行するとエラーになります。

エラーが出る

どうしてエラーが出るかというと文字列オブジェクトと数値オブジェクトは結合することができないからです。
もし今回数値オブジェクトとして定義したnumという変数を文字列に結合したい場合は数値オブジェクトから文字列オブジェクトに変換する必要があります。

irb | 文字列の結合を実行 -->
1
2
3
4
5
num = 25
num = num.to_s
puts "私は" + num + "歳です。"
# 文章が結合して表示される
私は25歳です。

私は25歳です

一度numは数字の2が入った数値オブジェクトとして定義されました。
それを2行目でto_sメソッドを使い、文字列オブジェクトとして上書きします。
そうすることにより「2」という文字に変換されたので、文字列同士で結合できたというわけです。

その他の変換系メソッド

Rubyには他にもオブジェクトの種類を変換するメソッドが用意されています。

メソッド 変換する内容 参照
to_i 数値オブジェクトに変換 参照記事
to_f Floatクラス(浮動小数点数)に「変換 参照記事
to_sym シンボルに変換 参照記事
to_h ハッシュオブジェクトに変換 参照記事
to_a 配列オブジェクトに変換 参照記事

この記事のまとめ

  • to_sメソッドは、文字列オブジェクトに変換するメソッドのこと
  • 数値オブジェクトと文字列オブジェクトを連結させたいときなどに使用する
  • Rubyの用語やコードの読み方に不安があるという方は、この参考書が参考になるよ!