0

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

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

print code

我首先对此感到困惑,但后来我仔细观察。所以它只是将该代码分配给一个变量。我确实用谷歌搜索了它,但什么也没找到。

那么在 ruby​​ 中调用的“<<-string”运算符是什么?

4

2 回答 2

4

这是ruby​​ 中的heredoc运算符。

缩进修饰符

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

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

请记住,保留前导空格。

于 2013-08-25T18:24:04.473 回答
0

这是“here document”或“heredoc”。

来自文档:如果您正在编写大量文本,则可以使用“here document”或“heredoc”:

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

That might span many lines
HEREDOC

heredoc 开始于 <

您可以将任何标识符与heredoc 一起使用,但通常使用全大写的标识符。

如果在 << 之后放置“-”,则可以缩进结束标识符:

  expected_result = <<-INDENTED_HEREDOC
This would contain specially formatted text.

That might span many lines
  INDENTED_HEREDOC

更多信息,请参考HereDoc@ruby-doc.org

于 2013-08-25T18:31:02.927 回答