什么是ruby中调用的“<< - ”运算符

时间:2013-08-25 18:23:25

标签: ruby

我正在读一本关于红宝石的书。然后我看到了那段代码。

code = <<-code
if val == true:
    print "...."
code

print code

我对此感到困惑但后来我仔细观察了一下。所以它只是将代码分配给变量。我用google搜索但没有发现任何东西。

那么什么是“&lt;&lt; -string”运算符在ruby中调用。

2 个答案:

答案 0 :(得分:4)

这是ruby中的heredoc运算符。

Indent modifier

默认情况下,HereDoc终结符应放在单独行的最开头 通过在HereDoc声明中使用-,您可以任意缩进结束终止符:

greeting = <<-"here document ends"
                 Hello world
               here document ends

请记住保留前导空格。

答案 1 :(得分:0)

这是“here document”或“heredoc”。

从文档中: 如果您正在编写大块文本,可以使用“here document”或“heredoc”:

expected_result = <<HEREDOC
This would contain specially formatted text.

That might span many lines
HEREDOC

heredoc开始于&lt;

您可以使用带有heredoc的任何标识符,但通常使用全大写标识符。

如果在&lt;&lt;:

之后放置“ - ”,则可以缩进结束标识符
  expected_result = <<-INDENTED_HEREDOC
This would contain specially formatted text.

That might span many lines
  INDENTED_HEREDOC

有关详细信息,请参阅HereDoc @ ruby-doc.org