我正在从事轨道上工作。在我的代码库中,我看到了这样使用Arel::SqlLiteral
这样的行:
result = Arel::Nodes::SqlLiteral.new(<<-SQL
CASE WHEN condition1 THEN calculation1
WHEN condition2 THEN calculation2
WHEN condition3 THEN calculation3
ELSE default_calculation END
SQL)
我了解该代码作品的作用。我不明白的是它的语法,此时:
Arel::Nodes::SqlLiteral.new(<<-SQL
...
SQL
)
so在ruby中, <<-
的语法是什么,然后终于命名为名称。
谢谢
您要寻找的关键字是" Heredoc"。
https://ruby-doc.org/core-2.2.0/doc/syntax/literals_rdoc.html#label-here-here-here documents
它主要用于使大型文本和外壳/壳标的常见实践。顶部的标记指示了Heredoc的开头和底部的标记(除非您在打开标记之前放置" - ",否则不得缩进。