5つの空の配列で構成されるRubyの配列があります。演算子を使用し<<
て文字列を最初の配列にプッシュしようとしていますが、その結果、文字列がすべての配列にプッシュされます。これを理解するのを手伝ってください。
期待される出力は次のとおりです。
# => [["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\"]]"