我正在尝试简单地使用字符串
'\\ \hline'
在我的程序中。 现在我使用单引号,所以我希望
a = ' \\ \hline'
给我我想要的东西,而不是
irb(main):001:0> a = ' \\ \hline'
=> " \\ \\hline"
我怎么会得到我想要的东西,因为我不知道意外的第二次双反斜杠?
编辑:与a = "\"
答案 0 :(得分:3)
您可能必须逃避所有反斜杠:
str = "\\\\ \\hline"
puts str
# => \\ \hline
请注意,如果您使用单引号字符串并且只转义单个反斜杠,它也会起作用:
str = '\\\\ \hline'
puts str
# => \\ \hline
并且如果你的反斜杠在某些看起来像可以转义的char的东西之前:
str = '\\\\ \nline'
puts str
# => \\ \nline
但如果您使用双引号则不是这样:
str = "\\\\ \nline"
puts str
# => \\
# => line
所有反斜杠的转义不是强制性的(正如@mudasobwa正确指出的那样)并且在某些情况下您可能决定不使用它,但恕我直言,这是优选的,特别是如果你使用带双引号的字符串。