我已经离开了ruby一段时间,并且在1.9.3中发现了一些非常奇怪的东西(至少对我来说)。也许有人可以向我解释。奇怪的是“ n”vs' n'
我试图将一个字符串拆分成行,所以我做了string.split('\n')
,但这是给我的地狱。
最终我追查到使用单引号代替双引号的问题。也就是说string.split("\n")
在跟踪下来的过程中,我发现了一些东西
'\n'.ord == 92
"\n".ord == 10
'\'.ord
无效红宝石'\\'.ord == 92
唯一我有的理论就是那个单一的现实tes导致ruby不解析字符串,因此将\n
视为两个字符。但是,如果这是为什么'\'
不能通过处理器?
我错过了什么吗?为什么不将split字符串转换为正确的ascii?
P.S.下面是一些测试代码来说明我的观点
"asdf\nasdf".split('\n').size #=> 1
"asdf\nasdf".split("\n").size #=> 2
此外,在单引号字符串中,反斜杠仅用于转义单引号,这就是为什么'''。ord'在语法上不正确的原因。 – Fraxtil 2012-07-25 02:44:12
@Fraxtil啊,这是有道理的。谢谢。请让这个答案 – diedthreetimes 2012-07-25 02:45:56
@Fraxtil尼斯加法:) – xdazz 2012-07-25 02:47:40