我創建了一個二維數組,整個二維數組像這樣填充了9。如何更改ruby中二維數組中元素的值?
matrix = Array.new(5,(Array.new(5,9)))
接着我打印整個陣列
puts "#{matrix}" # => [[9, 9, 9, 9, 9], [9, 9, 9, 9, 9], [9, 9, 9, 9, 9], [9, 9, 9, 9, 9], [9, 9, 9, 9, 9]]
接着我分配1
到[0][0]
位置。
matrix[0][0] = 1
然後我再次打印矩陣
puts "#{matrix}" # => [[1, 9, 9, 9, 9], [1, 9, 9, 9, 9], [1, 9, 9, 9, 9], [1, 9, 9, 9, 9], [1, 9, 9, 9, 9]]
所以,這裏的情況!爲什麼每一行都受到這個任務的影響。不應該只是改變[0][0]
的位置。 我正在使用ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
。
線索在輸出中。看看'matrix.each {| a |把a.object_id}'返回。 –
他們都一樣!得到你的觀點 –
'matrix = Array.new(5,Array.new(5,9))'(你不需要額外的parens)與'arr = Array.new(5,9);矩陣= Array.new(5,arr)'。得到它了? –