【问题标题】:Does Ruby support verbatim strings?Ruby 支持逐字字符串吗?
【发布时间】:2008-10-20 12:27:08
【问题描述】:

Ruby 中是否支持(因为没有更好的词)非转义(逐字)字符串?

就像在 C# 中一样:

@"c:\Program Files\"

...或在 Tcl 中:

{c:\Program Files\}

【问题讨论】:

    标签: ruby string syntax


    【解决方案1】:

    是的,您需要在字符串前面加上 % 前缀,然后用一个字符来描述其类型。

    你想要的是%q{c:\program files\}

    镐书很好地涵盖了这个here,部分是通用分隔输入。

    【讨论】:

    • 为什么不用单引号?
    • 通常是因为您需要引号作为撇号或多个引号,或者字符串中的引号不平衡。
    • 只是将镐书的链接更新为 .com 似乎现在已经消失了。 rubycentral.org/pickaxe/language.html
    • @banister:单引号有效,但前提是您愿意使用更多反斜杠来转义所有这些反斜杠,这在 Windows 文件路径等情况下会变得很难看。出于显而易见的原因,将其保留为 'c:\program files\' 将无法按预期工作。
    【解决方案2】:

    您可以只使用单引号字符串。

    >> puts "a\tb"
    a    b
    => nil
    >> puts 'a\tb'
    a\tb
    => nil
    

    【讨论】:

      【解决方案3】:

      除了 %q{string},您还可以执行以下操作:

      string =<<SQL
        SELECT * 
        FROM Book
        WHERE price > 100.00
        ORDER BY title;
      SQL
      

      分隔符是任意字符串,通常为大写。

      【讨论】:

        【解决方案4】:
        mystring = %q["'\t blahblahblah]
        

        或者如果您想将\t 解释为制表符:

        mystring = %Q["'\t blahblahblah]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-05
          • 2015-11-08
          相关资源
          最近更新 更多