构造多维数组

时间:2016-07-14 18:52:27

标签: ruby

我正在解决在线训练营的问题。我似乎无法弄清楚如何将多维数组传递给构造函数。我在这里寻找解决方案,但我似乎无法找到任何特定于初始化多维数组的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)

任何帮助将不胜感激!

感谢。

1 个答案:

答案 0 :(得分:3)

问题是你的com.mail.email_category...方法不带任何参数。您不能将参数传递给不带任何参数的方法。

改变这个:

initialize

对此:

def initialize
  @image = Array.new(4) { Array.new(4) }
end