【发布时间】:2010-06-12 08:03:35
【问题描述】:
在 Ruby 1.8.7 中,Array("hello\nhello") 为您提供["hello\n", "hello"]。这做了两件我没想到的事情:
它在换行符上分割字符串。我希望它只是给我一个数组,其中包含我传入的字符串作为其单个元素,而无需修改我传入的数据。
即使您接受在将字符串传递给 Array 时拆分字符串是合理的,但为什么它保留换行符而
"foo\nbar".split不保留?
另外:
>> Array.[] "foo\nbar"
=> ["foo\nbar"]
>> Array.[] *"foo\nbar"
=> ["foo\n", "bar"]
【问题讨论】:
-
FWIW,这在 Ruby 1.9.1 中不再适用。根本没有进行拆分。
-
是的,为了向后兼容 :) (尽管 Ruby 的政策可能是在次要版本号更改时打破它,而不是主要的。同样,任何约定都比其他约定好,总比没有好。 )
-
我猜这是为了让你可以写
Array(File.read(filename)),它会给你一个你所期望的(未压缩的)行数组。