我曾经遇到过这种情况,但从来没有真正理解过它。有人可以向我解释这个语法是如何创建一个字符串的吗?
STRING = <<-EOS
This is a string!!
EOS
puts STRING
=> "This is a string!!"
首先我认为<<-EOS
有一些特别的东西,但它实际上似乎适用于任何字符。例如<<x
也有效
有人可以向我解释一下这种语法到底是什么意思吗?以及如何创建字符串?
答案 0 :(得分:9)
它被称为heredoc,此功能内置于解析器中。
您可以将EOS
更改为您想要的任何字符串。这样做的原因是,如果由于某种原因你必须在字符串中加上单词EOS
(或引号),你可以为字符串末尾选择一个方便的信号,这个信号也不会出现在字符串中,所以你不必转义字符串中的任何内容。