在Ruby 1.8.7中,Array("hello\nhello")
給你["hello\n", "hello"]
。這是我不期望的兩件事:爲什麼在Ruby中,Array(「foo nbar」)== [「foo n」,「bar」]?
它拆分換行符上的字符串。我希望它只是給我一個數組,其中包含我傳入的字符串作爲其單個元素,而不修改我傳入的數據。
即使您接受將字符串傳遞給Array時合理分割字符串爲什麼在
"foo\nbar".split
不保留換行符?
此外:
>> Array.[] "foo\nbar"
=> ["foo\nbar"]
>> Array.[] *"foo\nbar"
=> ["foo\n", "bar"]
FWIW,這不再是真實的1.9.1。根本沒有分裂。 – 2010-06-12 08:13:33
Yay爲了向後兼容:)(儘管Ruby的策略可能是在小的版本號變化上打破它,而不是主要的。再一次,任何約定都是好的,比任何其他約好。) – badp 2010-06-12 08:25:04
我想這個所以你可以寫'Array(File.read(filename))',並且它會給你一個你想象中的(unchomped)行數組。 – 2010-06-12 11:20:30