2011-04-07 21 views
2

我遇到過這幾次,但從來沒有真正理解它。有人可以向我解釋這種語法如何創建一個字符串?創建紅寶石串的不同方式

STRING = <<-EOS 
This is a string!! 
EOS 

puts STRING 
=> "This is a string!!" 

由於起初我還以爲有什麼特別之處<<-EOS,但它實際上與出現任何字符工作。 <<x也可以工作

有人可以向我解釋這個語法到底是什麼意思嗎?以及它是如何創建一個字符串的?

回答

0

它被稱爲Here文件。請參閱doc here以獲得更好的解釋使用「字符串」

+1

thx爲文檔鏈接! – brad 2011-04-07 14:27:19

+7

你能否寫出比「請在這裏查看文檔」更多的解釋。 – rudolph9 2013-04-16 17:59:37

8

它被稱爲heredoc,並且此功能內置於解析器中。

您可以將EOS更改爲您想要的任何字符串。原因是,如果由於某種原因必須在字符串中輸入EOS(或引號),則可以爲字符串的末尾選擇一個方便的信號,該字符串不會出現在字符串中,所以你不必逃避字符串中的任何東西。

+0

爲了擴展Ken所說的,heredocs被用於很多語言,包括shell和Perl。它們可以作爲模板非常強大,因爲您可以在其中嵌入變量,與常規字符串類似,因此可以快速構建格式化文本。 – 2011-04-07 14:06:15

+0

thx,很好的解釋!鏈接到來自kurumi的文檔向我解釋了這一切 – brad 2011-04-07 14:27:45