構文応用レベル

次のプログラムを実行したときの結果として正しいものを選んでください。

text = <<'END'
Line1
Line2
END
"END"

p text
  • 1"Line1\nLine2\n" と表示される
  • 2"Line1\nLine2\nEND" と表示される
  • 3"Line1Line2" と表示される
  • 4エラーが発生する

解説

<<'END' で始まるヒアドキュメントは、END だけが書かれた行で終了します。その後の "END" は次の行の別の文字列式として評価されますが、その値はどこにも使われないため捨てられます。

text にはヒアドキュメントの内容 "Line1\nLine2\n" が代入されるため、p text ではそれが表示されます。ヒアドキュメント終端の直後に別の式を置くのは文法上有効ですが、混乱を招くため実務では避けるべき書き方です。

問題一覧へ戻る