我目前正在学习Ruby,我在我正在使用的教程中遇到了一个奇怪的障碍。我正在使用Learn Ruby The Hard Way中的this exercise,它一直产生语法错误,我无法弄清楚原因。
我正在尝试使用的代码是
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不是。
答案 0 :(得分: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
标志。
答案 1 :(得分:1)
虽然您发布的代码段中似乎不是这样,但您可能在-
的{{1}}的两侧或一侧都有空格。
如果你这样做,你可能会看到这样的警告:
<<-'HERE'
答案 2 :(得分:1)
我遇到了这个问题,结果是底部文件标记&#34; HERE&#34;在上面的例子中并没有反对左边距(无论如何在笔记本中)。
它前面的任何空格,或标签,它拒绝指向空白。