REx - Ruby Examinationで出てきた問題を振り返る。
問題
次のコードを実行するとどうなりますか。
s = <<'EOF' Hello, Ruby EOF 'EOF' p s
解答
以下が表示される。
"Hello,\nRuby\n"
解説
これはヒアドキュメントという機能を使ったもの。
普通の文字列リテラルはデリミタ(", ',
など)で囲まれた文字列ですが、ヒアドキュメントは
<<識別子' を含む行の次の行から `識別子' だけの行の直前までを文字列とする行指向のリテラルです。
<<
と書いたあと、EOS
などの文字で文字列を囲むと、改行を含む文字列を変数に代入することができるEOS
などの文字はなんでもいい。慣例的にEOSやEOLが使われる
例:aaa
にしても動く
data = <<aaa test テスト 123 hoge aaa p data => "test\nテスト\n123\nhoge\n"