1

私は現在 Ruby を学んでいますが、使用しているチュートリアルで奇妙な障害に遭遇しました。Learn Ruby The Hard Way のこの演習を使用していますが、構文エラーが発生し続け、その理由がわかりません。

私が使用しようとしているコードは

    puts <<-'HERE'
        There's something going on here.
        With the PARAGRAPH thing
        We'll be able to type as much as we like.
        Even 4 lines if we want, or 5, or 6.
    HERE

ただし、常に次の構文エラーが発生します

ex9.rb:12: syntax error, unexpected tIDENTIFIER, expecting $end
We'll be able to type as much as we like.
     ^

どんな助けでも大歓迎です!私は TextWrangler を使用しており、 TextWranglerはブロック引用として解析しますが、Ruby はそうではありません。

4

3 に答える 3

2

ruby-1.9.3-p194 で動作します:

[1] pry(main)> puts <<-'HERE'
[1] pry(main)*         There's something going on here.
[1] pry(main)*         With the PARAGRAPH thing
[1] pry(main)*         We'll be able to type as much as we like.
[1] pry(main)*         Even 4 lines if we want, or 5, or 6.
[1] pry(main)*     HERE
        There's something going on here.
        With the PARAGRAPH thing
        We'll be able to type as much as we like.
        Even 4 lines if we want, or 5, or 6.
=> nil

隠し文字またはエンコードの問題が疑われます。ロケールを確認するか--encoding、インタープリターを開始するときにフラグを試してください。

于 2012-06-09T17:16:34.773 に答える
1

-投稿したコード スニペットではそうは見えませんが、 inの両側または片側にスペースがあった可能性があります<<-'HERE'

その場合、次のような警告が表示される可能性があります。

test.rb:1: warning: `<<' after local variable is interpreted as binary operator
test.rb:1: warning: even though it seems like here document
test.rb:4: syntax error, unexpected tIDENTIFIER, expecting $end
        We'll be able to type as much as we like.
             ^
于 2012-06-09T17:30:52.937 に答える
1

私はこの問題を抱えていました.上記の例の一番下のファイルマーカー「HERE」は左余白に対してではなかったことがわかりました(とにかくノートブックで)。

その前にスペースがあるか、タブがあり、ポイントブランクが機能することを拒否しました。

于 2012-10-16T14:25:00.960 に答える