2012-03-19 43 views
0
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 

这可以正常工作,使用记事本++红宝石放<<段落

但为什么不能工作?

puts <<PARAGRAPH 
aaaa Aa 
aaa 
AA 
PARAGRAPH 

test.rb:1:语法错误,意想不到的tCONSTANT,期待$结束

谢谢!

+2

无论你的片段为我工作。 – 2012-03-19 15:49:07

回答

2

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

红宝石中的多行字符串,奇怪的是这种方式。终止字符(无论它可能是什么)必须是终止字符串的第一行,否则您经常会看到语法错误。

1

确保确保PARAGRAPH(第二实例)一)拼写相同作为第一个实例,以及b)在该行的开始处,或更改您的代码:

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

有关详细信息,阅读intro to Stringsfull description

1

该代码适用于我。一种方式我把它弄坏了被< <

之间和段落

puts << PARAGRAPH 
PARAGRAPH 
增加空间这是从下面的例子不同。

puts <<PARAGRAPH 
PARAGRAPH 

编辑:当我继续玩它,我发现PARAGRAPH就像任何地方的持有人。你可以做到以下几点,你仍然会得到一个段落中的字符串

puts <<ANYTHING_YOU_WANT 
ANYTHING_YOU_WANT 

我认为这是很酷的,它并不仅限于这个词的段落。我不知道。

0

我可以通过在最后的PARAGRAPH之后添加额外的空格来使版本出错。

确保关闭PARAGRAPH确实是一个新行(每diedthreetimes的回答),并没有尾随字符(即空格,制表符等)