Ruby - ヒアドキュメント(here-document)

Advertisement

ヒアドキュメント(here-document)

文字列リテラルを複数行として扱うために、ヒアドキュメントを利用することができる。

文法
<<識別子
#ドキュメント
#ドキュメント
#ドキュメント
識別子
先に指定した識別子がある行までを、連続したドキュメントとして扱う。

print <<DOCUMENT
こんにちは
きょうはいいてんきです
DOCUMENT

利用例

複数行の文字列を扱う場合にヒアドキュメントを利用しないと、以下のように複雑なコードを書くことになってしまう。
例1
print "こんにちは\nきょうはいいてんきです\n"

例2
str = "こんにちは\n"
str = str + "きょうはいいてんきです\n"
print str
※2のようなコードはJava等でよく見る。

これらのコードをヒアドキュメントを利用して記述すると以下のようになり、読みやすく、また修正しやすくなる。

例1
print <<ABC
こんにちは
きょうはいいてんきです
ABC

例2
str = <<STRING
こんにちは
きょうはいいてんきです
STRING

終端行のインデント

終端行をインデントすると、文法エラーになる。

    str = <<STRING
こんにちは
きょうはいいてんきです
    STRING
これはエラー

これを回避するためには、<<-を利用する。
    str = <<-STRING
こんにちは
きょうはいいてんきです
    STRING

Advertisement

ショートカット

634トップページ
このカテゴリのトップページに戻る
634ラボ

サイト検索

Google

Web サイト内

Y!ログール