2016-09-20 113 views
-4

」開頭是什麼意思?在Ruby中,多行註釋以<<開頭是什麼意思?多行註釋以「

+0

這是多行字符串的語法,而不是註釋。術語是「heredocs」 –

回答

0

它定義了一種方法,您可以輸入多行代碼,這些代碼將被Ruby解釋器忽略。這種多行文字特徵被稱爲「Here Documents」(縮寫爲「heredoc」)。這裏討論...

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

你把你自己的「關鍵詞」的<<後,然後用相同的關鍵字的最後一行後,使紅寶石知道多線任務結束的地方。

x = 1 

<<-endofstuff 
x = 2 
x += 1 
endofstuff 

p x 
=> 1 

你可以看到< <與關鍵詞之間的行會被忽略。

但是,這不是通常意義上的評論,而是佔用一些內存分配。實際上,在你看到事件發生的地方,很有可能會創建一個分配給變量或傳遞給方法的文字。

不推薦使用「heredoc」進行評論,也不是該功能的原意。如果用於評論,可能會讓審查代碼的人感到困惑,特別是長的代碼塊。

使用(改爲)和=end約定,或者爲了清晰起見更好,在每個註釋行前面使用明確的#

+0

我不確定你爲什麼稱這個多線任務。這只是一個多行字符串文字。不需要賦值,例如,您可以直接將其作爲方法參數傳遞。你也使用'<< - '表格,它允許在關鍵字之前出現空格。 – Max

+0

這是字符串的語法,而不是註釋。 –

+0

是的,@SergioTulentsev,但它可以用於評論,並被引用爲「多行註釋」,它是一個沒有接收變量的字符串分配。我不是說這是一種很棒的技術,也不是我所做的,但它回答了OP的問題。 – SteveTurczyn