Rubyの複数行文字列とヒアドキュメントの使い方|初心者向け実践パターン
生徒
「Rubyで複数行の文字列を簡単に書く方法はありますか?」
先生
「はい、Rubyにはヒアドキュメントという便利な機能があります。複数行の文字列をそのまま書けて、コードも読みやすくなります。」
生徒
「ヒアドキュメントってどうやって使うんですか?」
先生
「基本は <<-END という形で始めて、終了ラベルで終わらせます。インデントを考慮する場合は <<~END が便利です。」
1. ヒアドキュメントとは?
ヒアドキュメント(Here Document)は、複数行にわたる文字列を簡単に書く方法です。通常の文字列は "..." や '...' で囲みますが、長い文章やHTMLテンプレートを書く場合は不便です。そこでヒアドキュメントを使うと、開始と終了のラベルで囲むだけで複数行文字列を表現できます。
2. 基本のヒアドキュメント(<<-)
<<-END を使った基本パターンです。終了ラベルはインデントできますが、ラベル自体は行頭に書く必要があります。
text = <<-TEXT
これはヒアドキュメントの例です。
複数行にわたる文字列を簡単に書けます。
Ruby初心者にもわかりやすいです。
TEXT
puts text
これはヒアドキュメントの例です。
複数行にわたる文字列を簡単に書けます。
Ruby初心者にもわかりやすいです。
ポイントは、文字列中の改行もそのまま保持されることです。
3. インデントをきれいにするヒアドキュメント(<<~)
<<~END を使うと、開始ラベルと終了ラベルのインデントを基準に、文字列の先頭の空白を自動で除去できます。これにより、コードを読みやすく整形できます。
def greeting(name)
message = <<~GREETING
こんにちは、#{name}さん!
Rubyのヒアドキュメントを学びましょう。
複数行の文字列も簡単です。
GREETING
puts message
end
greeting("太郎")
こんにちは、太郎さん!
Rubyのヒアドキュメントを学びましょう。
複数行の文字列も簡単です。
このように、インデントを揃えたまま文字列の先頭空白を除去できるので、長いコードでも見やすくなります。
4. ヒアドキュメントの活用例
- 長い文章や説明文をそのまま書く
- メール本文やHTMLテンプレートを生成する
- SQL文を複数行で書く場合
例えば、HTMLテンプレートを生成する場合もヒアドキュメントを使うと、タグの階層構造を崩さずに記述できます。
html = <<~HTML
<div class="container">
<h1>タイトル</h1>
<p>本文の内容をここに書きます。</p>
</div>
HTML
puts html
<div class="container">
<h1>タイトル</h1>
<p>本文の内容をここに書きます。</p>
</div>
5. 実践ポイント
- 複数行文字列を扱う場合はヒアドキュメントを活用
<<-は基本形、<<~はインデント整形用- テンプレートや文章、HTML生成に便利
- Ruby初心者でも可読性の高いコードを保てる
ヒアドキュメントをマスターすれば、長い文字列を安全かつ効率的に扱えるようになり、Rubyプログラミングの幅が広がります。
まとめ
今回は、Rubyで複数行の文字列を扱うときに欠かせない「ヒアドキュメント」について、その仕組みや使い分け、そして実際の活用例まで丁寧に整理してきました。通常のダブルクォーテーションやシングルクォーテーションではどうしても複数行をそのまま書くのが難しく、可読性も低くなりがちですが、ヒアドキュメントを使えば長い説明文やテンプレートをそのままの形で記述でき、コードの見通しが格段に良くなります。特に、文章構造を保ちながら複数行を表現できる点は、Ruby初心者にとっても理解しやすく、実務に近い形で文章やメッセージを扱えるという大きなメリットがあります。
また、ヒアドキュメントには基本形の <<- と、インデントをきれいに整えてくれる <<~ の2つの使い方があり、用途に応じて使い分けることでより読みやすいコードを書くことができます。特に <<~ はRubyの中でも人気が高く、関数の中に複数行文字列を置きたいときや、入れ子になった構造の中でもインデントを揃えて美しく記述したいときに非常に便利です。HTML、メール本文、SQL文、説明文など幅広いケースで活用されるため、この2つの違いを理解しておくと、複雑な文字列でも落ち着いて扱えるようになります。
サンプル:複数行の説明文を整形して表示する
def manual
text = <<~DOC
これはRubyで複数行の文章を扱う練習です。
ヒアドキュメントを使うと、改行を含む文章も
そのままの形で自然に書くことができます。
文章の見た目を崩さずに保持できるので、
ドキュメントの生成や説明文の出力に向いています。
DOC
puts text
end
manual
これはRubyで複数行の文章を扱う練習です。
ヒアドキュメントを使うと、改行を含む文章も
そのままの形で自然に書くことができます。
文章の見た目を崩さずに保持できるので、
ドキュメントの生成や説明文の出力に向いています。
このように、ヒアドキュメントを使うと文章の見栄えを崩さずに保持できるため、Webアプリケーションの説明テキストやヘルプ文、テンプレート生成など実務に直結する場面で大いに役立ちます。特に、Rubyは文字列操作が得意な言語のひとつであり、ヒアドキュメントを理解することでより柔軟な文章表現が可能になります。今後テンプレートや長文を扱う場面が増えたとき、「あのとき学んだヒアドキュメントを使えば良い」と自然に思えるようになるでしょう。複数行文字列の扱いは、Rubyの基礎を超えて実践的なスキルのひとつとなるため、ぜひ何度か試しながら身につけてみてください。
生徒
「今日のヒアドキュメント、思ったより便利ですね。ふつうの文字列よりも文章を書きやすい気がします。」
先生
「そうでしょう?特に説明文やテンプレートを扱うときには欠かせない機能なんです。複数行をそのまま書けるのは本当に助かりますよ。」
生徒
「インデントを整えてくれる <<~ も便利でした。コードと文章の両方が読みやすくなりますね!」
先生
「その通りです。実務のコードはどうしても長くなりがちなので、見やすさを保つ工夫は大切です。ヒアドキュメントはその強い味方になりますよ。」
生徒
「HTMLやメールのテンプレートにも使えるって知って、応用できる場面がたくさん思い浮かびました!」
先生
「そうなんです。Rubyの魅力のひとつは、文字列操作のしやすさですからね。今日学んだことを色々な場面で試してみてください。」