【3分でわかる】Rubyでヒアドキュメント

今回はrubyのヒアドキュメントについて解説していきたいと思います。しかしヒアドキュメントと聞いても、

そもそもヒアドキュメントって何?
rubyでヒアドキュメントってどうやって使うの?
もっと便利なヒアドキュメントの使い方ってないの?

とさまざまな疑問が浮かんできます。そこで今回はヒアドキュメントについて以下の内容で解説していきます。

ヒアドキュメントとは
rubyでヒアドキュメント
ヒアドキュメントの便利な使い方

本当に3分で理解出来ちゃうので、サクッといきましょう!

ヒアドキュメントとは

ヒアドキュメントとは一言で言うと、「文字列をプログラミングに埋め込むためのもの」と言えます。

普通の文字列の表現と違い、改行も埋め込むことができるので、より柔軟に文字列を扱うことができます。

特にRubyの場合、改行は普通だと文の終了だと見なされるますがヒアドキュメントによって、改行した複数行の文字列をプログラムに使用することができます。

rubyでヒアドキュメント

それではrubyでヒアドキュメントを使っていきましょう!

ヒアドキュメントは「<<」識別子を使用して表します。

識別子の後に、ヒアドキュメントの終わりと始まりを表す文字列を打ちます。

p <<-EOF
ruby
python
java
EOF

# =>"ruby\npython\njava\n"

ヒアドキュメントの文字列は慣習的にEOFやEOSが使われますが、終わりと始まりで一致していれば何を使用しても大丈夫です!

便利な使い方

それではヒアドキュメントの便利な使い方を見ていきましょう!
これを知ることでより柔軟にヒアドキュメントを使うことができます!

変数の展開

まずは変数の展開について見ていきます。
識別のための文字を""(ダブルコーテーション)で囲うことで、文字列と同じように展開を行うことができます。

language = "ruby"
p <<"EOF"
#{language}
python
java
EOF

# =>"ruby\npython\njava\n"

メソッドチェーン

ヒアドキュメント内の文字列に対してメソッドを一気に実行することができます。

p <<-EOF.upcase
ruby
python
java
EOF

# =>"RUBY\nPYTHON\nJAVA\n"

複数のヒアドキュメント

一括でヒアドキュメントを使用することもできます。

p <

インデントを考慮

rubyのヒアドキュメントはインデントが考慮されず、インデントを入れて書くと、空白が入ってしまいます。

p <"  ruby\n  python\n  java\n"

それを防ぐために「~」を使用してヒアドキュメントを書きます。

p <<~EOF1
  ruby
  python
  java
EOF1

#=> "ruby\npython\njava\n"

まとめ

今回はrubyでヒアドキュメントの書き方を解説していきました。
ヒアドキュメントは適切に使うことで、文字列をより柔軟にプログラム内に使用することができます!

基本的な使い方だけではなく、発展的な使い方も覚えておくと良いでしょう!
ぜひこの記事を参考に使用してみてください!

Rubyの文字列をしっかり理解したい方に

この記事は文字列を体系的に解説した3ステップで簡単! Rubyの文字列を 完全理解の一部となります。
文字列をさらに理解したい方はこちらを読んでどんどん理解を深めていくようにしましょう。

LINEで送る
Pocket

SEからWebエンジニアへ転職した理由

侍エンジニア塾卒業生の小池さんは、以前は社内SEとして約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
更新日 : 2019年10月7日

書いた人

ババシュンスケ

ババシュンスケ

こんにちは!
今年大学を飛び出し、フリーランスエンジニアとして働いています、ババです!

エンジニアはしんどい仕事と思われていますが、実はそんなにしんどくなくて、お金ももらえて、社会のためになる素晴らしい仕事というのを伝えるために、侍で業務委託として働いています!!

フリーランスの日常やら書いているブログやってます=>http://www.babashun.net/

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説