TaKesso's Tech Blog

Web中心の技術メモ

Ruby: ヒアドキュメントの扱い

REx - Ruby Examination で解いた問題の解説を自分なりにまとめ直すシリーズです。

問題

次のコードを実行するとどうなりますか

s = <<'EOF'
Hello,
Ruby
EOF
'EOF'

p s

選択肢

  1. "Hello,\nRuby\n"と表示される
  2. "Hello,\nRuby\nEOF"と表示される
  3. "Hello,Ruby"と表示される
  4. エラーが発生する

解答

正解は [1] です

解説

  • <<'EOF' から EOF までがヒアドキュメント
  • 'EOF' はただの文字列出力
  • p は改行コード¥nを表示する
    • puts / print / printf は実際に改行した文字列を表示する
  • 開始ラベル
    • "識別子": 式展開が有効
    • 識別子: 同上
    • '識別子': 式展開できない
    • `識別子`: コマンド出力