创建红宝石字符串的不同方式

时间:2011-04-07 13:50:35

标签: ruby string

我曾经遇到过这种情况,但从来没有真正理解过它。有人可以向我解释这个语法是如何创建一个字符串的吗?

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

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

首先我认为<<-EOS有一些特别的东西,但它实际上似乎适用于任何字符。例如<<x也有效

有人可以向我解释一下这种语法到底是什么意思吗?以及如何创建字符串?

1 个答案:

答案 0 :(得分:9)

它被称为heredoc,此功能内置于解析器中。

您可以将EOS更改为您想要的任何字符串。这样做的原因是,如果由于某种原因你必须在字符串中加上单词EOS(或引号),你可以为字符串末尾选择一个方便的信号,这个信号也不会出现在字符串中,所以你不必转义字符串中的任何内容。