【问题标题】:Single quotes vs double quotes单引号与双引号
【发布时间】:2012-12-13 09:19:29
【问题描述】:

我试图用三个连续的换行符 ("\n\n\n") 分割一个字符串。我正在尝试str.split('\n\n\n'),但它没有用,但是当我更改为str.split("\n\n\n") 时,它开始起作用了。谁能向我解释为什么会发生这种行为?

【问题讨论】:

    标签: ruby string escaping quotes double-quotes


    【解决方案1】:

    单引号中的字符串是一个原始字符串。所以'\n\n\n' 是三个反斜杠和三个n,而不是您预期的三个换行符。只有双引号字符串可以正确转义。

    puts 'abc\nabc'  # => abc\nabc
    puts "abc\nabc"  # => abc
                     #    abc
    

    【讨论】:

      【解决方案2】:

      单引号字符串具有实际/文字内容,例如

      1.9.3-p194 :003 > puts 'Hi\nThere'
      Hi\nThere
       => nil 
      

      而双引号字符串“插入”特殊字符 (\n) 并进行换行,例如

      1.9.3-p194 :004 > puts "Hi\nThere"
      Hi
      There
       => nil 
      1.9.3-p194 :005 > 
      

      最佳实践建议:

      • 尽可能选择单引号而不是双引号(根据需要使用双引号进行插值)。
      • 当嵌套“引号在某处的“引号”中时,将双引号放在单引号内

      【讨论】:

        【解决方案3】:

        在单引号字符串文字中,反斜杠不需要加倍

        '\n' == '\\n'
        

        【讨论】:

          猜你喜欢
          • 2011-09-17
          • 2012-12-30
          • 1970-01-01
          • 1970-01-01
          • 2013-02-07
          • 1970-01-01
          • 2016-03-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多