有人可以告诉我如何声明二维数组的新实例吗? 大多数语言都使用
之类的东西array = Array.new[2][2]
我不知道如何在Ruby中做到这一点。
请帮忙......
答案 0 :(得分:29)
你可以这样做:
width = 2
height = 3
Array.new(height){Array.new(width)} #=> [[nil, nil], [nil, nil], [nil, nil]]
答案 1 :(得分:5)
要在ruby中声明2d数组,请使用以下语法和初始化值
row, col, default_value = 5, 4, 0
arr_2d = Array.new(row){Array.new(col,default_value)}
=> [[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
我们可以进行任何级别的嵌套,例如3d数组(5 x 4 x 2):你可以在大多数内部数组中传递块来初始化数组
z = 2
arr_3d = Array.new(row){Array.new(col){Array.new(z){|index| index}}}
=> [[[0, 1], [0, 1], [0, 1], [0, 1]],
[[0, 1], [0, 1], [0, 1], [0, 1]],
[[0, 1], [0, 1], [0, 1], [0, 1]],
[[0, 1], [0, 1], [0, 1], [0, 1]],
[[0, 1], [0, 1], [0, 1], [0, 1]]]
现在,您可以使用[]运算符访问其元素,例如arr_2d [0] [1],actually its array of arrays
答案 2 :(得分:3)
您可以使用以下命令在Ruby中声明多维数组:
Array.new(Number_of_ROWs){Array.new(Number_of_COLUMNs)}
如何使用此语法
让我们通过使用上面的示例来理解它,即 array = Array.new[2][2]
。
因此,在这个例子中,我们要声明一个包含2行和2列的空多维数组。
让我们现在开始实现我们的语法,
array = Array.new(2){Array.new(2)}
现在您的array
行2
行,2
列nil
。{/ p>
现在array
变量包含[[nil, nil], [nil, nil]]
,其被视为empty multidimensional array
或nil value multidimensional array
。
答案 3 :(得分:0)
您还可以初始化传递值:
Array.new(3) { Array.new(3) { '0' } }
输出:
[
["0", "0", "0"],
["0", "0", "0"],
["0", "0", "0"]
]
答案 4 :(得分:0)
简单地: array = Array.new(8,Array.new(8))