web-dev-qa-db-ja.com

Rubyの「構文エラー、予期しないtCONSTANT」エラーとは何ですか?

私は現在、「学ぶRuby難しい方法」」のレッスン9に参加しています。

行番号6を指示どおりに入力しましたが、実行中にエラーが発生します。

それは言う:

Syntax error, unexpected tCONSTANT, expecting $end
puts " Here ^ are the days : ", days 
17
The Realmccoy

前の行の文字列を閉じるのを忘れました。再現された問題は次のとおりです。

paul@paulbookpro ~ ⸩ Ruby     
days = "abc
puts "Here are the days"
-:2: syntax error, unexpected tCONSTANT, expecting $end
puts "Here are the days"
          ^

これは、「Here」という単語の前の二重引用符を前の行の文字列の終了引用符として扱い、Here(大文字で始まるトークン)という定数を使用している理由を疑問に思っています。

24
Paul Annesley

エラーメッセージは、Rubyパーサーが定数(大文字で始まる識別子)を予期していなかった場所で検出したことを意味します(具体的には、パーサーはファイルがその時点で終了することを期待していました)。

表示したコードには定数さえ含まれていないため、問題はコードの別の部分が原因である可能性があります。

5
sepp2k