2016-12-20 156 views
-4

我正在使用Rails。在我的代碼的基礎上,我看到使用Arel::SqlLiteral這樣一行:Ruby:<< - 運營商

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 
) 

所以在Ruby中,什麼是<<-後續的名字語法,然後在最後一塊我們叫這個名字。

謝謝

+0

我真的不明白爲什麼打完標記重複後,我仍然收到投反對票:D完全廢話:DI認爲那些人投票我沒有開心的生活^^ –

+0

此外,他們是否可以谷歌'<< - '操作員的意思是:DI嘗試沒有結果。希望他們在做某些行動之前應該三思:尊重他們周圍的人^^有點落選不會做任何改變,但他們。他們會變得越來越仇恨。 –

回答

1

您正在尋找的關鍵字是「Heredoc」。

https://ruby-doc.org/core-2.2.0/doc/syntax/literals_rdoc.html#label-Here+Documents

它主要是用來美化大文本和常見的做法殼/ shellscripts。頂部的標記指示heredoc的開始和底部的標記(除非在開始標記之前放置「 - 」,否則不能縮進)指定結束。

+0

謝謝。真的不知道爲什麼有人投你的答案:D它幫助我。至少沒有做錯什麼^^窮人。 –