【发布时间】:2012-12-24 23:35:27
【问题描述】:
只是好奇 Ruby 开发人员决定解释单引号内的双反斜杠转义序列背后的原因。我可以理解为什么必须解释转义的单引号,因为无法插入单引号字符。例如:
'\'' == "'"
但是考虑'\\' == "\\"。为什么这是另一个特例?
【问题讨论】:
标签: ruby string escaping quotes
只是好奇 Ruby 开发人员决定解释单引号内的双反斜杠转义序列背后的原因。我可以理解为什么必须解释转义的单引号,因为无法插入单引号字符。例如:
'\'' == "'"
但是考虑'\\' == "\\"。为什么这是另一个特例?
【问题讨论】:
标签: ruby string escaping quotes
硬引用字符串中最初需要的一种转义是\',其他人也注意到了这一点。
但是,也需要\\的真正根本原因是,一旦支持\',否则就不可能结束 带有反斜杠的硬引号字符串。
【讨论】:
'...\' 这也将包含在字符串中
这是插入反斜杠本身。如果没有这种特殊情况,就不可能在单引号字符串中使用反斜杠。
\' 和 \\ are the only two escape sequences in single-quoted strings。
【讨论】:
这种特殊情况是在单引号字符串中嵌入单引号或撇号所必需的。考虑以下几点:
'\''
# => "'"
'It\'s a baby boy!'
# => "It's a baby boy!"
如果没有转义,Ruby 将假定第二个引号终止字符串,留下不平衡的第三个引号。
作为前面的推论,您需要转义转义字符以避免转义后续字符。例如,'\' 表示要转义第二个引号,留下一个未终止的字符串。但是,'\\' 会在字符串中产生一个斜线。
【讨论】: