修改二维 ruby​​ 数组有困难

2024-03-30

新手问题请见谅。我正在尝试在 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

它的线row.each do |column|变量column是值的副本row。您不能以这种方式编辑其值。你必须这样做:

def mda(width,height)
  a = Array.new(width)
  a.map! { Array.new(height) }
  a.each do |row|
    row.map!{1}
  end
  return a
end

或更好:

def mda(width,height)
  a = Array.new(width)
  a.map! { Array.new(height) }

  a.map do |row|
    row.map!{1}
  end
end

或更好:

def mda(width,height)
  a = Array.new(width){ Array.new(height) }
  a.map do |row|
    row.map!{1}
  end
end

或更好:

def mda(width,height)
  Array.new(width) { Array.new(height){1} }
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修改二维 ruby​​ 数组有困难 的相关文章

随机推荐