構文基礎レベル
次のプログラムを実行すると何が表示されますか?
lang = "Ruby" text = <<'END' Hello, #{lang}! END p text
- 1"Hello, Ruby!\n" と表示される
- 2"Hello, \#{lang}!\n" と表示される
- 3"Hello, lang!\n" と表示される
- 4エラーが発生する
解説
<<'END'(シングルクォート付きヒアドキュメント)は、シングルクォート文字列と同様に文字列補間(#{...})が行われません。#{lang} はそのままリテラル文字列として扱われます。
補間を有効にするには <<END(クォートなし)または <<"END" を使います。<<'END' と <<END の違いは、'...' と "..." の違いと同じです。