2

只是好奇 Ruby 开发人员决定解释单引号内的双反斜杠转义序列背后的原因。我可以理解为什么必须解释转义的单引号,因为无法插入单引号字符。例如:

'\'' == "'"

但考虑'\\' == "\\"。为什么这是另一个特例?

4

3 回答 3

2

为了用反斜杠结束字符串

\'正如其他人也注意到的那样,硬引用字符串中最初需要的一种转义是。

但真正需要的根本原因\\是,一旦\'支持,就不可能用反斜杠结束硬引用的字符串。

于 2013-01-10T17:21:35.243 回答
1

这是插入反斜杠本身。如果没有这种特殊情况,就不可能在单引号字符串中使用反斜杠。

\'并且\\ 是单引号字符串中仅有的两个转义序列

于 2013-01-10T14:39:53.070 回答
0

撇号需要转义

这种特殊情况对于将单引号或撇号嵌入到单引号字符串中是必要的。考虑以下:

'\''
# => "'"

'It\'s a baby boy!'
# => "It's a baby boy!"

如果没有转义符,Ruby 将假定第二个引号终止字符串,留下不平衡的第三个引号。

斜线需要转义

作为前面的推论,您需要转义转义字符以避免转义后续字符。例如,'\'说要转义第二个引号,留下一个未终止的字符串。但是,'\\'会导致字符串中出现文字斜线。

于 2013-01-10T14:49:13.437 回答