見出し画像

[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を書くときに便利みたいです。

まとめ

ちょっと上級者むけ?な印象です。

まだこの利便性がいまいちわかりません。。。

この記事が気に入ったらサポートをしてみませんか?