ヒアドキュメント
リファレンスのなぞり書き。
基本文法
<<[(-|~)]["'`]識別子["'`] ... 識別子
<<[(-|~)]
<<
- ヒアドキュメント内の空白文字は全て文字列に含まれる。
- 終端の識別子は行頭にある必要がある。=インデントされていると識別子とみなされない。
string = <<EOS line1 line2 EOS => " line1\n line2\n"
string = <<EOS line1 line2 EOS EOS => " line1\n line2\n EOS\n"
行頭にない(=インデントされた)識別子は単なる文字列と見なされる。
<<-
- ヒアドキュメント内の空白文字は全て文字列に含まれる。
- 終端の識別子は行頭になくてよい。=インデントされていても識別子とみなされる。
string = <<-EOS line1 line2 EOS => " line1\n line2\n"
<<~
- ヒアドキュメント内の空白文字は、最もインデントが浅い行を基準として取り除かれる。
- 終端の識別子は行頭になくてよい。=インデントされていても識別子とみなされる。
string = <<~EOS line1 line2 EOS => "line1\n line2\n"
最もインデントが浅いline1を基準として、そこからの相対的なインデントのみが空白文字となっている。
["'`]識別子["'`]
それぞれの囲み文字で囲まれた文字列として評価される。
'
n = 10 <<'EOS' #{n} EOS => " \#{n}\n"
"
n = 10 <<"EOS" #{n} EOS => " 10\n"
なし
"
と同等。
n = 10 <<EOS #{n} EOS => " 10\n"
`
<<`EOS` echo hoge EOS => "hoge\n"