我在 Ruby 中有一个由 5 个空数组组成的数组。我正在尝试使用<<
运算符将字符串推送到第一个数组中,但结果是字符串被推送到所有数组中。请帮助我理解这一点。
预期的输出是:
# => [["car"], [], [], [], []]
但相反,我得到:
# => [["car"], ["car"], ["car"], ["car"], ["car"]]
irb转储:
1.9.3-p194 :001 > output = Array.new(5, [])
=> [[], [], [], [], []]
1.9.3-p194 :002 > output.inspect
=> "[[], [], [], [], []]"
1.9.3-p194 :003 > output[0].inspect
=> "[]"
1.9.3-p194 :004 > output[0] << "car"
=> ["car"]
1.9.3-p194 :005 > output.inspect
=> "[[\"car\"], [\"car\"], [\"car\"], [\"car\"], [\"car\"]]"