单引号与双引号

Fel*_*ida 2 ruby string quotes escaping double-quotes

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

hal*_*elf 8

单引号中的字符串是原始字符串.那么'\n\n\n'是三个反斜杠和三个n,而不是你预期的三个换行符.只有双引号字符串才能正确转义.

puts 'abc\nabc'  # => abc\nabc
puts "abc\nabc"  # => abc
                 #    abc
Run Code Online (Sandbox Code Playgroud)


Mic*_*ant 5

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

1.9.3-p194 :003 > puts 'Hi\nThere'
Hi\nThere
 => nil 
Run Code Online (Sandbox Code Playgroud)

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

1.9.3-p194 :004 > puts "Hi\nThere"
Hi
There
 => nil 
1.9.3-p194 :005 > 
Run Code Online (Sandbox Code Playgroud)

最佳实践建议:

  • 尽可能在双引号上选择单引号(根据需要使用双引号进行插值).
  • 当嵌套'引用内部'引用"某处"时,将双引号放在单引号内