gpt4 book ai didi

ruby - 难以修改二维 ruby 数组

转载 作者:数据小太阳 更新时间:2023-10-29 08:02:00 24 4
gpt4 key购买 nike

请原谅新手问题。我正在尝试在 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| 行中,变量 columnrow 中值的副本。您不能以这种方式编辑它的值。你必须这样做:

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

关于ruby - 难以修改二维 ruby 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4012666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com