像这样生成一个数组的话
ary = Array.new(3, "foo")
p ary #=> ["foo", "foo", "foo"]
ary[0].capitalize!
p ary #=> ["Foo", "Foo", "Foo"] (数组里面每个元素都是相同的对象)
ruby-doc 里面说这种方式的初始化方式只推荐生成不变的对象,比如 symbol, 数字,还有 true 和 false
但是换种语法来生成数组的话
ary = Array.new(3){ "foo" }
p ary #=> ["foo", "foo", "foo"]
ary[0].capitalize!
p ary #=> ["Foo", "foo", "foo"] (每个元素都是不同的对象)