Jör*_*tag 9

Ruby中没有三重引号.

String并列的两个文字被解析为单个String文字.所以,

'Hello' 'World'
Run Code Online (Sandbox Code Playgroud)

是相同的

'HelloWorld'
Run Code Online (Sandbox Code Playgroud)

'' 'Hello' ''
Run Code Online (Sandbox Code Playgroud)

是相同的

'''Hello'''
Run Code Online (Sandbox Code Playgroud)

是相同的

'Hello'
Run Code Online (Sandbox Code Playgroud)

三重单引号与三重双引号没有特殊规则,因为没有三重引号.规则与报价简单相同.

  • 如果您指的是[这个答案](/sf/answers/4545846091/),那么不,答案是不正确的。该答案中的所有示例都只是多个字符串文字的并置,即它们正是我在答案中解释的内容。不幸的是,很难证明某些东西“不存在”存在,但 ISO Ruby 语言规范、RubySpec、YARV 测试套件、matz 的“Ruby 编程语言”一书或任何其他书籍中都没有提及三引号字符串。其他书籍、Ruby 文档或任何 Ruby 实现的解析器中。 (2认同)

mml*_*mln 7

我假设作者混淆了 Ruby 和 Python,因为三重引号在 Ruby 中不会像作者认为的那样工作。它就像三个单独的字符串 ( '' '' '')一样工作。

对于多行字符串,可以使用:

%q{
 your text
 goes here
}
 => "\n     your text\n     goes here\n    "
Run Code Online (Sandbox Code Playgroud)

或者%Q{}如果您需要在内部进行字符串插值。