在Ruby 1.8.7中,
Array("hello\nhello")
会给你["hello\n", "hello"]
。这做了两件事情我没想到的:
它在换行符上分割了字符串。我期望它只是简单地给我一个数组,其中包含我传递的字符串作为其单个元素,而不修改我传递的数据。
即使你认为将字符串拆分并传递给数组是合理的,为什么它保留换行符,而
"foo\nbar".split
却没有保留呢?
此外:
>> Array.[] "foo\nbar"
=> ["foo\nbar"]
>> Array.[] *"foo\nbar"
=> ["foo\n", "bar"]
Array(File.read(filename))
,这样它会按你的期望给你一个(未删除换行符的)行数组。 - glenn jackman