構文基礎レベル

次のプログラムを実行すると何が表示されますか?

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 の違いは、'...'"..." の違いと同じです。

問題一覧へ戻る