に「終端されていない文字列は、ファイルの終わりを満たしている」だけの時計には、このように入力します。文字列、ルビーマインデバッガではルビーマイン
';'
または
";"
を、あなたが取得しますエラー:
"unterminated string meets end of file"
なぜですか? Railsコンソールでは起こりません。RubyMineとは関係ありませんが、私が知る限りはそうです。
に「終端されていない文字列は、ファイルの終わりを満たしている」だけの時計には、このように入力します。文字列、ルビーマインデバッガではルビーマイン
';'
または
";"
を、あなたが取得しますエラー:
"unterminated string meets end of file"
なぜですか? Railsコンソールでは起こりません。RubyMineとは関係ありませんが、私が知る限りはそうです。
これは、Rubyインタープリタと異なる構文解析ルールを持つRubyデバッガの結果です。実際には、irb
またはruby
コマンドから呼び出された通常のRubyデバッガは、この同じ動作を示します。この問題を回避するには、しかし、簡単です:ちょうどバックスラッシュでエスケープ、単一のセミコロンからなる文字列リテラルを作成するには:
$ irb
> require 'debugger'
=> true
> debugger
(rdb:1) ';'
*** SyntaxError Exception: /usr/local/rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/irb/context.rb:166: unterminated string meets end of file
(rdb:1) '\;'
";"
それはRubyのデバッガのコマンドラインパーサがはないことに注意することが重要ですirb
又はruby
インタプリタによって使用パーサと同じ:それは解析デバッガコマンドの周りに設計されている(irb
の場合にシェル状の拡張子を持つ)Ruby言語を解析するなどbacktrace
などbreak
とない。 Ruby(またはRubyスタイル)の式を評価するためのサポートは限られています。これは、もちろん、Rubyプログラムの効果的なデバッグには不可欠です。しかし、irb
またはruby
コマンド自体がまったく同じ方法で物事を解析したり解析したりすることができるすべてを解析できるとは期待してはいけません。このような場合には、特定の式を処理することができますが、Ruby言語自体ではなく、デバッガの解析ルールに従ってエスケープする必要があります。
レールコンソールはirb
の上に構築され、したがって、Rubyのシェルであり、ちょうどirb
とruby
などRuby言語の構文解析ルールを尊重されます。
私はgsub( '\;'、 '、')を使って同じ問題を抱えていました。 – Mitch