Ruby 构造多维数组
我正在为一个在线训练营解决一个问题。我似乎不知道如何将多维数组传递到构造函数中。我在这里四处寻找解决方案,但似乎找不到任何ruby特有的初始化多维数组的方法。也许我用错了搜索词 [问题] 构建一个类,该类允许我们使用指定的数据构建新映像。使类能够将图像输出到屏幕。您的目标是让以下代码正常工作:Ruby 构造多维数组,ruby,Ruby,我正在为一个在线训练营解决一个问题。我似乎不知道如何将多维数组传递到构造函数中。我在这里四处寻找解决方案,但似乎找不到任何ruby特有的初始化多维数组的方法。也许我用错了搜索词 [问题] 构建一个类,该类允许我们使用指定的数据构建新映像。使类能够将图像输出到屏幕。您的目标是让以下代码正常工作: image = Image.new([ [0, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 1], [0, 0, 0, 0]]) image.output_image 当您运行该
image = Image.new([
[0, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 0, 1],
[0, 0, 0, 0]])
image.output_image
当您运行该代码时,它将向终端窗口输出以下内容:
0000
0100
0001
0000
这是我写的
class Image
def initialize
@image= Array.new(4) { Array.new(4) }
end
def output_image
@image.each do |x|
x.each do |y|
puts y
end
end
end
end
image = Image.new([
[0, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 0, 1],
[0, 0, 0, 0]
])
image.output_image
我得到了一个错误:
app.js:2:in `initialize': wrong number of arguments (1 for 2) (ArgumentError)
任何帮助都将不胜感激
谢谢 问题在于initialize方法不接受任何参数。不能将参数传递给不接受任何参数的方法
更改此项:
def initialize
@image = Array.new(4) { Array.new(4) }
end
为此:
def initialize(image)
@image = image
end
您的错误消息与您的代码不匹配。1.对于Ruby文件来说,app.js是一个非常奇怪的名字;2.initialize方法不接受任何参数,但错误消息表明它需要两个参数。您确定您问题中的错误消息是您问题中的确切代码引起的错误消息,还是来自您未与我们共享的不同版本的代码的错误消息?…并将@image.each循环替换为@image.each do | x |;放置x.join;结束,乔丹,你做得很好!我想当我发帖时,我复制并粘贴到了app.js文件中。尽管如此,我还是在js文件中运行了代码,它运行得很好。维尔德。Cary,谢谢你,我对如何让循环的输出以4sEx0000打印感到困惑。。。。放上x。join让它工作了。今年,我们将使用类似于java的curoius代码'def output_image@image.each do | x | x.each do | y | String row+=y end放置行结束end@CarySwoveland放置@images.map&:join@meagar,我看不见森林。