5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

rubyのヒアドキュメントは <<~ でほぼOK説

Last updated at Posted at 2015-06-10

もはやrubyのヒアドキュメントは<<~でほぼOKじゃなかろうか。

.ruby
def what_to_buy
  onion = "たまねぎ"
  text = <<~EOS
    買うものリスト:
      * にんじん
      * #{onion}
      * スパイス
        + ターメリック
        + クミン
        + コリアンダー
  EOS
  puts text
end

結果

買うものリスト:
  * にんじん
  * たまねぎ
  * スパイス
    + ターメリック
    + クミン
    + コリアンダー

<<~には以下の特徴があります。

  • 区切り文字(ここではEOS)をインデントして書けるので美しい
  • 共通インデントは削る。(上では全ての行に4つ以上スペースが有るので、全行の先頭4スペースを削る)
  • #{onion}の様に式展開する

稀に<<~では駄目な場合も有るので一応他の書き方も。

書式 説明
<<EOS 〜 EOS 式展開される。終端のEOSは必ず行頭に書く
<<'EOS' 〜 EOS 式展開されない。終端のEOSは必ず行頭に書く
<<-EOS 〜 EOS 式展開される。終端のEOSをインデントできる
<<-'EOS' 〜 EOS 式展開されない。終端のEOSをインデントできる

※ 上記4つはどれも<<~が持つ**共通インデントを削る**という効果は有りません。

5
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?