Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 构造多维数组_Ruby - Fatal编程技术网

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 当您运行该

我正在为一个在线训练营解决一个问题。我似乎不知道如何将多维数组传递到构造函数中。我在这里四处寻找解决方案,但似乎找不到任何ruby特有的初始化多维数组的方法。也许我用错了搜索词

[问题]

构建一个类,该类允许我们使用指定的数据构建新映像。使类能够将图像输出到屏幕。您的目标是让以下代码正常工作:

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,我看不见森林。