因为反斜杠转义序列不在单引号字符串中处理.这"\n"是一个换行符(它是一个字符),但'\n'实际上是一个反斜杠后跟一个'n'(所以两个字符).你可以通过询问每个字符串的各个字符来看到这个:
irb(main):001:0> "\n".chars #=> ["\n"]
irb(main):002:0> '\n'.chars #=> ["\\", "n"]
Run Code Online (Sandbox Code Playgroud)
..或者只是将它们打印出来:
irb(main):001:0> puts "a\nb"
a
b
irb(main):002:0> puts 'a\nb'
a\nb
Run Code Online (Sandbox Code Playgroud)