私はしばらくの間ルビーから離れていましたが、1.9.3で(少なくとも私にとっては)非常に奇妙なことに気づきました。おそらく誰かが私にそれを説明することができます。
文字列を行に分割しようとしていたので、そうしましたstring.split('\n')
が、これは私に地獄を与えていました。
最終的に、二重引用符の代わりに一重引用符を使用することで問題を突き止めました。あれはstring.split("\n")
これを追跡する過程で、私はいくつかのことに気づきました
'\n'.ord == 92
"\n".ord == 10
'\'.ord
有効なルビーではありません'\\'.ord == 92
私が持っている唯一の理論は、一重引用符によってルビーが文字列を解析せず、したがって\n
2文字として扱われるというものです。しかし、これが事実である場合、なぜ'\'
プロセッサを通過しないのですか?
私は何かが足りないのですか?文字列を正しいASCIIに分割変換しないのはなぜですか?
PSこれが私のポイントを説明するためのいくつかのテストコードです
"asdf\nasdf".split('\n').size #=> 1
"asdf\nasdf".split("\n").size #=> 2