@634

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ブログ
このカテゴリのトップページに戻る
Incubator(Pukiwiki)
634ラボ
   UIコレクションギャラリー
   ZO-3ジェネレーター

サイト検索


Y!ログール