カテゴリ: Ruby 更新日: 2025/12/20

Rubyのヒアドキュメント完全ガイド!初心者でもわかる<<-と<<~の違いとインデント調整のコツ

ヒアドキュメント完全ガイド:<<- と <<~ の違い・インデントを揃えるコツ
ヒアドキュメント完全ガイド:<<- と <<~ の違い・インデントを揃えるコツ

先生と生徒の会話形式で理解しよう

生徒

「Rubyで長い文章をプログラムに書きたいときって、どうすればいいんですか?」

先生

「その場合はヒアドキュメントという便利な書き方を使います。これは複数行の文字列を簡単に表現できる仕組みなんです。」

生徒

「へえ!でもインデントとか揃えるのが大変そうに見えます…。」

先生

「大丈夫。Rubyには<<-<<~という2種類のヒアドキュメントがあって、インデントを揃えやすくできるんです。順番に解説していきましょう。」

1. ヒアドキュメントとは?

1. ヒアドキュメントとは?
1. ヒアドキュメントとは?

ヒアドキュメント(Here Document)とは、Rubyで複数行の文字列を簡単に書くための文法です。長文のメッセージやメール本文、HTMLのようなコードをそのまま埋め込みたいときに便利です。

例えば、次のように書くと複数行をひとつの文字列として扱えます。


text = <<-EOS
これはヒアドキュメントの例です。
改行もそのまま反映されます。
Rubyで長い文章を書くときに使います。
EOS

puts text

これはヒアドキュメントの例です。
改行もそのまま反映されます。
Rubyで長い文章を書くときに使います。

EOSは区切りを示すマーカーで、自由にTEXTDOCなどの名前に変更できます。

2. <<- と <<~ の違い

2. <<- と <<~ の違い
2. <<- と <<~ の違い

ヒアドキュメントには<<-<<~の2種類の書き方があります。両方とも複数行文字列を扱いますが、インデントの扱い方が異なります。

2-1. <<- の特徴

<<-では、終了マーカー(EOSなど)をインデントして書くことができます。ただし、本文のインデントはそのまま出力されるので、ソースコードの見た目と出力結果がズレることがあります。


text = <<-EOS
    インデントもそのまま出力されます。
    プログラムの見た目と結果が揃わないこともあります。
EOS

puts text

    インデントもそのまま出力されます。
    プログラムの見た目と結果が揃わないこともあります。

2-2. <<~ の特徴

<<~では、共通のインデントが自動的に取り除かれます。これにより、ソースコードのインデントを保ちながら、出力結果ではきれいに揃った文章が得られます。


text = <<~EOS
    インデントがあっても
    出力時にはきれいに揃います。
EOS

puts text

インデントがあっても
出力時にはきれいに揃います。

コードを読みやすく保ちつつ、出力結果も美しくしたい場合は<<~を使うのがオススメです。

3. インデントを揃えるコツ

3. インデントを揃えるコツ
3. インデントを揃えるコツ

ヒアドキュメントで複数行を書いていると、プログラムの見た目と出力のバランスを取るのが難しいことがあります。そんなときに役立つのが次のポイントです。

  • 見た目を優先するなら <<~ を使う
  • インデントをそのまま残したいなら <<- を使う
  • マーカー(EOSやDOC)は意味が分かりやすい単語にする

例えば、HTMLを埋め込むときには<<~HTMLと書くとわかりやすいです。


html = <<~HTML
    <div class="box">
      <p>Rubyのヒアドキュメント</p>
    </div>
HTML

puts html

<div class="box">
  <p>Rubyのヒアドキュメント</p>
</div>

4. 実際の活用例

4. 実際の活用例
4. 実際の活用例

ヒアドキュメントは長文のメール本文や説明文をプログラムに埋め込むときにも使えます。


mail_body = <<~MAIL
    こんにちは、Ruby学習者のみなさん。

    今日はヒアドキュメントについて学びました。
    <<- と <<~ を使い分ければ、見やすくきれいなコードが書けます。

    それでは、また次回お会いしましょう。
MAIL

puts mail_body

こんにちは、Ruby学習者のみなさん。

今日はヒアドキュメントについて学びました。
<<- と <<~ を使い分ければ、見やすくきれいなコードが書けます。

それでは、また次回お会いしましょう。

このように、文章をそのままコードに書き込めるので、特にテキストを扱う処理で役立ちます。

まとめ

まとめ
まとめ

ここまで、Rubyで長文を扱うときに欠かせないヒアドキュメントの基礎から、実際の活用方法まで一つひとつ詳しく確認してきました。文章や複数行の文字列を扱う処理は、初心者にとってとてもハードルが高いように見えることがあります。しかし、Rubyには複数行の文字列を直感的に扱える便利な構文が用意されており、コードを整えながら読みやすく記述できる魅力があります。特に、<<- と <<~ の違いを理解することで、プログラムの見た目と実際の出力結果をきれいに揃えながら、効率よく文章を管理することができます。 それぞれの書き方には向き不向きがあるため、状況に合わせて適切に選ぶことが大切です。インデントをそのまま残したい場面では <<- を、見た目を整えながら扱いたい場面では <<~ を使うとよいでしょう。また、文章だけでなく、HTMLやメール本文、説明文などの複雑なテキストも簡潔に記述できるため、実務の中でも頻繁に利用されます。コードの可読性を高める工夫としても非常に役立ち、複雑なロジックを組む際にも無駄な処理を省き、スッキリしたコードを維持できます。 ヒアドキュメントの使い方をしっかり身につけることで、Rubyでのテキスト処理の幅が大きく広がり、ひとつ上のステップに進みやすくなります。実際に自分でさまざまな文章を埋め込みながら、出力の変化やインデントの扱い方を試してみると、理解が深まり応用も自然とできるようになります。Rubyを活用するうえで欠かせない表現方法なので、ぜひ今回の知識を積極的に使っていきましょう。

ヒアドキュメントをより深く理解するサンプル

次の例では、文章に変数を埋め込んだり、インデントを調整しながら整った出力を得る方法を確認できます。


name = "太郎"
lesson = "ヒアドキュメント"

message = <<~TEXT
    こんにちは、#{name}さん。

    今日はRubyの#{lesson}について学びました。
    <<- と <<~ の違いを理解すると、
    長い文章を扱うときの自由度が大きく高まります。

    自分でも色々試して、Rubyでの文章処理に慣れていきましょう。
TEXT

puts message

こんにちは、太郎さん。

今日はRubyのヒアドキュメントについて学びました。
<<- と <<~ の違いを理解すると、
長い文章を扱うときの自由度が大きく高まります。

自分でも色々試して、Rubyでの文章処理に慣れていきましょう。

このように、ヒアドキュメントは文章をそのまま記述できるだけでなく、変数展開も自然に使えるため、可読性が高く柔軟な書き方が可能となります。特に、文章の途中に動的な値を挿入したい場合にとても便利で、テンプレート処理のような用途でも力を発揮します。

先生と生徒の振り返り会話

生徒

「ヒアドキュメントって便利なんですね!特に <<~ のインデント調整がすごく分かりやすかったです。」

先生

「そうですね。Rubyでは文章を扱う場面が多いので、ヒアドキュメントを使いこなせるとコードの見た目もきれいになり、作業しやすくなりますよ。」

生徒

「なるほど!長い説明文やメールのテンプレートを作るときにも使えそうだと思いました。」

先生

「その通りです。実務でも本当によく使うので、今日学んだことを忘れずに、いろいろな文章で試すと理解がもっと進みますよ。」

生徒

「はい!さっそく自分のコードにも取り入れてみます。ありがとうございました!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Rubyのヒアドキュメントって何ですか?どんな場面で使いますか?

Rubyのヒアドキュメント(Here Document)は、複数行の文字列を簡単に扱える書き方です。メール本文やHTMLなどの長文テキストをコード内にそのまま書きたいときに使います。特に改行や空白を含んだ文字列を保持したいときに便利です。
関連記事:
カテゴリの一覧へ
新着記事
New1
データベース
SQLの処理が遅くなる原因とは?初心者向けにデータベースパフォーマンス最適化を完全解説
New2
Ruby
RubyのネストHash操作を徹底解説!digとtransformメソッドで複雑なデータも楽々
New3
Rails
Railsインデックス設計の極意!爆速サイトを作るためのスキーマ設計ガイド
New4
データベース
SQLのCOMMITとROLLBACKとは?トランザクション操作を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
PATHと環境変数の正しい設定!Windows・Mac・Linux別チェックリスト付き
No.2
Java&Spring記事人気No2
Rails
Railsで日本語と時刻の設定をしよう!初心者でも安心のlocale/zone初期設定チートシート
No.3
Java&Spring記事人気No3
Ruby
Rubyのハッシュを徹底比較!シンボルキーと文字列キーの違いと使い分け
No.4
Java&Spring記事人気No4
Rails
Railsマイグレーションの型選びを完全ガイド!初心者が迷わないカラム設計
No.5
Java&Spring記事人気No5
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.6
Java&Spring記事人気No6
Rails
RailsモデルとActive Record基礎|ID戦略を完全理解!AUTO INCREMENT・UUID・ULIDの比較と導入手順
No.7
Java&Spring記事人気No7
Rails
RailsモデルとActive Record基礎|クエリログの読み方を理解してEXPLAIN・joins・includesの違いを学ぼう
No.8
Java&Spring記事人気No8
データベース
ACID特性とは?データベーストランザクションの信頼性を初心者向けに徹底解説