2010-07-21 80 views
2

为什么以下字符串在Ruby解释器中给我相同的输出?单引号Ruby字符串 - 不一致转义

'f:\new' 
    'f:\\new' 

这两个字符串都会导致:"f:\\new"。我期待第二个字符串显示"f:\\\\new"(如果不是,那么第一个应该显示"f:\new"

+0

我没有看到你的两个输入字符串的区别。也许你打错了。 – murgatroid99 2010-07-21 13:33:03

+0

我不熟悉Ruby,但我猜测第一个被检测为反斜杠的使用不正确(在单引号字符串中,它应该后面跟着反斜杠或单引号),所以反斜杠被保留... – pascal 2010-07-21 13:37:52

+0

@ murgatroid99,你现在看到了区别吗? (有一个SO格式错误。) – 2010-07-21 13:38:27

回答

2

单引号字符串支持只有两个转义序列:\'\\

这就是为什么在你的第一个例子\n不被视为新行字符:它不在列表中。