0
下面的代碼:陣列行爲不端
# a = Array.new(3, Array.new(3))
a = [[nil,nil,nil],[nil,nil,nil]]
a[0][0] = 1
a.each {|line| p line}
隨着輸出:
[1, nil, nil]
[nil, nil, nil]
但使用註釋行:
[1, nil, nil]
[1, nil, nil]
[1, nil, nil]
那麼,爲什麼會這樣?
類似的事情可能發生在哈希:http://stackoverflow.com/questions/2698460/strange-ruby-behavior-when-using-hash-new –
可能的重複[這是Array.fill中的錯誤方法在Ruby?](http://stackoverflow.com/questions/3285229/is-this-a-bug-in-the-array-fill-method-in-ruby)。我偶然碰巧遇到了這個騙局,並且意識到它與這個類似,所以它不是一個容易找到的重複。 –