Ruby put<

时间:2012-03-19 15:46:54

标签: ruby

puts <<PARAGRAPH
There's somthing 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 .
PARAGRAPH

这可以使用Notepad ++

但为什么这不起作用?

puts <<PARAGRAPH
aaaa Aa
aaa
AA
PARAGRAPH
  

test.rb:1:语法错误,意外的tCONSTANT,期待$ end

谢谢!

4 个答案:

答案 0 :(得分:2)

我的猜测是,在你的第二个片段中,PARAGRAPH不在线的乞讨。

ruby​​中的多行字符串非常奇怪。终止字符(无论它可能是什么)必须是终止字符串的第一件事,否则你经常会看到语法错误。

答案 1 :(得分:1)

确保PARAGRAPH(第二个实例)a)拼写与第一个实例相同,b)在行的开头,或将代码更改为:

def go
  puts <<-PARAGRAPH   # hyphen allows the end marker to be indented
    Hi mom!
  PARAGRAPH
end

有关详情,请参阅intro to Stringsfull description

答案 2 :(得分:1)

该代码适合我。我打破它的一种方法是在&lt;&lt;&lt;&lt;&lt;和PARAGRAPH

puts << PARAGRAPH
PARAGRAPH

这与下一个例子不同。

puts <<PARAGRAPH
PARAGRAPH

编辑:当我继续玩它时,我发现PARAGRAPH就像任何占位符一样。您可以执行以下操作,但仍会在字符串

中获得一个段落
puts <<ANYTHING_YOU_WANT
ANYTHING_YOU_WANT

我觉得很酷,它不仅仅局限于PARAGRAPH这个词。我不知道。

答案 3 :(得分:0)

我可以通过在最终PARAGRAPH之后添加额外的空格来获得任一版本的错误。

确保结束PARAGRAPH确实在一个新行上(每个死亡三次回答)并且没有尾随字符(即空格,制表符等)