我已经离开 ruby 有一段时间了,我注意到 1.9.3 中有一些非常奇怪的东西(至少对我来说)。也许有人可以向我解释。
我试图将一个字符串分成几行,所以我做到了string.split('\n')
,但这让我很痛苦。
最终我找到了使用单引号而不是双引号的问题。那是string.split("\n")
在追踪这个的过程中,我注意到了一些事情
'\n'.ord == 92
"\n".ord == 10
'\'.ord
不是有效的红宝石'\\'.ord == 92
我唯一的理论是单引号导致 ruby 不解析字符串,因此将\n
其视为两个字符。但是,如果是这种情况,为什么不'\'
通过处理器?
我错过了什么吗?为什么 split 不将字符串转换为正确的 ascii?
PS这是一些测试代码来说明我的观点
"asdf\nasdf".split('\n').size #=> 1
"asdf\nasdf".split("\n").size #=> 2