Rubyの文字列の基礎を完全ガイド!初心者でもわかるシングルクォートとダブルクォートの違い・式展開の使い方
生徒
「Rubyで文字列を扱うときに、シングルクォートとダブルクォートがありますよね?どっちを使えばいいんですか?」
先生
「とても大事なポイントです。Rubyでは、文字列を'シングルクォート'か"ダブルクォート"で囲むことができますが、挙動に違いがあるんですよ。」
生徒
「見た目はほとんど同じなのに違いがあるんですね。どう違うのか具体的に教えてください!」
先生
「はい。シングルクォートとダブルクォートの違い、そして#{ }を使った式展開について、順番に学んでいきましょう。」
1. 文字列リテラルとは?
文字列リテラルとは、プログラムの中で文章や文字を表すための書き方です。Rubyでは、文字列を'シングルクォート'や"ダブルクォート"で囲んで書きます。
例えば、以下のように書くと画面に「こんにちは」と表示されます。
puts 'こんにちは'
puts "こんにちは"
どちらも同じ結果になりますが、Rubyではシングルクォートとダブルクォートに違いがあるので注意が必要です。
2. シングルクォートの特徴
シングルクォート(' ')で囲まれた文字列は、中身をそのまま文字として扱います。特殊な意味を持つ記号も、基本的にはただの文字として表示されます。
puts 'こんにちは\nRuby'
こんにちは\nRuby
シングルクォートでは、\n が改行としては認識されず、文字列の一部としてそのまま出力されます。つまり、「そのままの文字を表示したいとき」に使うのがシングルクォートです。
3. ダブルクォートの特徴
ダブルクォート(" ")で囲まれた文字列は、エスケープシーケンス(特殊な意味を持つ記号の組み合わせ)を解釈します。
puts "こんにちは\nRuby"
こんにちは
Ruby
このように、ダブルクォートでは\nが改行として処理されます。つまり、文字列の中で改行やタブを使いたいときにはダブルクォートを使います。
4. 式展開(#{ })の使い方
Rubyの式展開とは、文字列の中に変数や計算結果を埋め込む機能のことです。式展開はダブルクォートで囲まれた文字列で使うことができます。
name = "太郎"
puts "こんにちは、#{name}さん"
こんにちは、太郎さん
#{ } の中に変数nameを書くだけで、自動的に中身が文字列に埋め込まれます。とても便利ですよね。
5. 式展開で計算を埋め込む
式展開は変数だけでなく、計算式やメソッドの結果も埋め込むことができます。
price = 120
tax_rate = 0.1
puts "税込み価格は#{price + (price * tax_rate)}円です"
税込み価格は132.0円です
このように、計算式をそのまま文字列に入れることができるので、動的に文章を作るときに大活躍します。
6. シングルクォートでは式展開できない
シングルクォートで囲んだ文字列では式展開が使えません。#{ }は単なる文字列として扱われます。
name = "花子"
puts 'こんにちは、#{name}さん'
こんにちは、#{name}さん
このように、文字列の中に変数を埋め込みたいときは必ずダブルクォートを使いましょう。
7. 実践的な使い分け
Rubyの文字列リテラルを使うときは次のルールを覚えておくと便利です。
- 単純に文字列を表示するだけならシングルクォート
- 改行やタブ、式展開を使いたいならダブルクォート
例えば、メッセージを画面に出すときに動的に名前や数値を入れる場合はダブルクォートを使います。逆に、特殊な処理が不要ならシンプルにシングルクォートで十分です。
まとめ
Rubyで文字列を扱う際に重要となるポイントを振り返ると、まず最初に理解すべきなのは、シングルクォートとダブルクォートが持つ性質の違いです。これら二種類の文字列リテラルは見た目が似ているため初心者には混乱しやすい部分ですが、Rubyでは役割がはっきり分かれています。シングルクォートは内部の文字をそのまま扱い、改行やタブなどの特殊な記号も解釈せずに文字列として保持します。一方で、ダブルクォートはエスケープシーケンスを正しく処理し、式展開によって変数や計算結果を文章の中に自然に埋め込むことができます。 こうした特徴を理解すると、Rubyで動的な文章を生成したり、画面表示を整えたりするときにどちらの記法を使うべきか判断しやすくなります。また、初心者がつまづきやすい式展開の挙動も、ダブルクォートを使えば簡単に適用できることが分かり、より柔軟なコード作成が可能になります。特に業務プログラムやWebアプリケーションでは、ユーザー名や金額、計算結果を文章として出力する場面が多いため、この知識は欠かせません。 Rubyの文字列処理は、基本的な構文を理解することで使い分けがスムーズになり、プログラム全体の可読性と表現力が向上します。今回の内容をしっかり身につけておけば、文字列を扱う多くの場面で判断に迷うことが少なくなり、より自然で意図の伝わりやすいRubyコードを記述できるようになるはずです。
サンプルプログラム
以下は今回学んだ内容を活かしたサンプルです。Rubyの文字列リテラル、シングルクォート・ダブルクォートの違い、式展開の使い方を確認できるように構成しています。
name = "桃子"
age = 20
message_single = 'ようこそ\nRuby学習へ'
message_double = "ようこそ\nRuby学習へ"
info = "名前は#{name}さんで、年齢は#{age + 1}歳になります"
puts message_single
puts message_double
puts info
このサンプルでは、シングルクォートでは改行が反映されないこと、ダブルクォートでは正しく改行が適用されること、式展開によって変数や計算がスムーズに文章に組み込めることが確認できます。Rubyの文字列処理を理解するための総まとめとして、ぜひ実行しながら動きを確かめてください。
生徒
「先生、今日の学習でシングルクォートとダブルクォートの違いがやっとはっきりわかりました!とくに式展開がダブルクォートでしか使えないことが印象に残りました。」
先生
「その理解はとても大事ですね。Rubyでは文章を作る機会が多いので、式展開の仕組みを知っているとコードがぐっと書きやすくなりますよ。」
生徒
「たしかに、動的に文章を作るときにすごく便利だなと思いました。計算式まで入れられるのは驚きでした。」
先生
「その調子です。場面に応じて適切にクォートを使い分けられるようになると、Rubyでの文字列処理がぐっと楽しくなりますよ。」