我正在读一本关于红宝石的书。然后我看到了那个代码。
code = <<-code
if val == true:
print "...."
code
print code
我首先对此感到困惑,但后来我仔细观察。所以它只是将该代码分配给一个变量。我确实用谷歌搜索了它,但什么也没找到。
那么在 ruby 中调用的“<<-string”运算符是什么?
我正在读一本关于红宝石的书。然后我看到了那个代码。
code = <<-code
if val == true:
print "...."
code
print code
我首先对此感到困惑,但后来我仔细观察。所以它只是将该代码分配给一个变量。我确实用谷歌搜索了它,但什么也没找到。
那么在 ruby 中调用的“<<-string”运算符是什么?
这是ruby 中的heredoc运算符。
默认情况下,HereDoc 终止符应放置在单独行的最开头通过使用-
on HereDoc 声明,您可以任意缩进结束终止符:
greeting = <<-"here document ends"
Hello world
here document ends
请记住,保留前导空格。
这是“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