抱歉问一个新手问题。我正在尝试在Ruby中创建一个二维数组,并将其所有值初始化为1。我的代码成功创建了二维数组,但未能修改任何值。
有人能解释一下我做错了什么吗?
def mda(width,height)
#make a two dimensional array
a = Array.new(width)
a.map! { Array.new(height) }
#init all its values to 1
a.each do |row|
row.each do |column|
column = 1
end
end
return a
end
array = [[1]*w]*h
一样,您只会制作指向相同的1维数组的“h”个副本。关于混合“宽度”和“高度”——这是另一个问题,作者没有打算讨论。 - Nakilon