
Photo by
satomigoro
[Ruby] ヒアドキュメントとは?調べてみた
たまにRubyで <<"EOS"という記述を見るので調べてみました。
ヒアドキュメント
どうやらこれはヒアドキュメントというものらしいです。
<<EOS ~ EOSの間を文字列として改行を含めて認識してくれるらしいです。
まとまった文字列を記載するのに便利みたいです。
name = "shin"
puts <<EOS
私の名前は
#{name}
です。
EOS
これは
puts " 私の名前は\n shin\n です。\n"
と一緒です。
EOSをシングルクォートで囲むと、ヒアドキュメント全体を囲ったことになります。そのため、#{}で変数を囲んでも使用できません。
name = "shin"
puts <<'EOS'
私の名前は
#{name}
です。
EOS
$ 私の名前は
$ #{name}
$ です。
他にもバッククォートで囲むとコマンドとして認識してくれたりと、色々な文法があるみたいです。
気になる方は調べてみてください。
用途
使い道は様々あるようですが、ruby内で長文のSQL文を書くときや、HTMLを書くとき、JSONを書くときに便利みたいです。
まとめ
ちょっと上級者むけ?な印象です。
まだこの利便性がいまいちわかりません。。。