2019-09-28
ヒアドキュメント
リファレンスのなぞり書き。
基本文法
<<[(-|~)]["'`]識別子["'`]
...
識別子
<<[(-|~)]
<<
- ヒアドキュメント内の空白文字は全て文字列に含まれる。
- 終端の識別子は行頭にある必要がある。=インデントされていると識別子とみなされない。
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"