我遇到過這幾次,但從來沒有真正理解它。有人可以向我解釋這種語法如何創建一個字符串?創建紅寶石串的不同方式
STRING = <<-EOS
This is a string!!
EOS
puts STRING
=> "This is a string!!"
由於起初我還以爲有什麼特別之處<<-EOS
,但它實際上與出現任何字符工作。 <<x
也可以工作
有人可以向我解釋這個語法到底是什麼意思嗎?以及它是如何創建一個字符串的?
我遇到過這幾次,但從來沒有真正理解它。有人可以向我解釋這種語法如何創建一個字符串?創建紅寶石串的不同方式
STRING = <<-EOS
This is a string!!
EOS
puts STRING
=> "This is a string!!"
由於起初我還以爲有什麼特別之處<<-EOS
,但它實際上與出現任何字符工作。 <<x
也可以工作
有人可以向我解釋這個語法到底是什麼意思嗎?以及它是如何創建一個字符串的?
它被稱爲Here文件。請參閱doc here以獲得更好的解釋使用「字符串」
它被稱爲heredoc,並且此功能內置於解析器中。
您可以將EOS
更改爲您想要的任何字符串。原因是,如果由於某種原因必須在字符串中輸入EOS
(或引號),則可以爲字符串的末尾選擇一個方便的信號,該字符串不會出現在字符串中,所以你不必逃避字符串中的任何東西。
爲了擴展Ken所說的,heredocs被用於很多語言,包括shell和Perl。它們可以作爲模板非常強大,因爲您可以在其中嵌入變量,與常規字符串類似,因此可以快速構建格式化文本。 – 2011-04-07 14:06:15
thx,很好的解釋!鏈接到來自kurumi的文檔向我解釋了這一切 – brad 2011-04-07 14:27:45
thx爲文檔鏈接! – brad 2011-04-07 14:27:19
你能否寫出比「請在這裏查看文檔」更多的解釋。 – rudolph9 2013-04-16 17:59:37