如何使用Ruby初始化二维数组的所有值,有没有办法一步完成?

如何使用Ruby初始化二维数组的所有值,有没有办法一步完成?,ruby,multidimensional-array,Ruby,Multidimensional Array,例如,将整个数组初始化为0或任何其他值 [ [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0] ] 当然 当然 抱歉,我更改了您的数组,该数组无效。这是否回答了您的问题?抱歉,我更改了您的数组,该数组无效。这是否回答了您的问题?Eduard,这个答案的一个变体是Array.new3{Array.new4{0}。您需要了解,这个答案与arr=Array.new3,Array.new4,0=>[[0,0,0,0],[0,0,0,0],[0,0,0]]不同

例如,将整个数组初始化为0或任何其他值

[
  [0, 0, 0, 0],
  [0, 0, 0, 0], 
  [0, 0, 0, 0]
]
当然

当然


抱歉,我更改了您的数组,该数组无效。这是否回答了您的问题?抱歉,我更改了您的数组,该数组无效。这是否回答了您的问题?Eduard,这个答案的一个变体是Array.new3{Array.new4{0}。您需要了解,这个答案与arr=Array.new3,Array.new4,0=>[[0,0,0,0],[0,0,0,0],[0,0,0]]不同。后者是不正确的,因为如果我们设置arr[0][0]=1,我们会发现arr=>[[1,0,0,0],[1,0,0,0],[1,0,0,0]]。请参阅。@CarySwoveland:我建议您将此作为答案而不是评论发表,因为这似乎确实是解决OPs问题的答案。@CarySwoveland将0放入额外块是多余的,因为整数是不可变的。厄尔索斯的回答很好。是的,显然我试过了,不需要额外的钱block@Stefan而厄尔索斯,我并不是在提倡变异;我提到它只是为了提醒Eduard,以防他看到它是这样写的。Eduard,这个答案的一个变体是Array.new3{Array.new4{0}。您需要了解,这个答案与arr=Array.new3,Array.new4,0=>[[0,0,0,0],[0,0,0,0],[0,0,0]]不同。后者是不正确的,因为如果我们设置arr[0][0]=1,我们会发现arr=>[[1,0,0,0],[1,0,0,0],[1,0,0,0]]。请参阅。@CarySwoveland:我建议您将此作为答案而不是评论发表,因为这似乎确实是解决OPs问题的答案。@CarySwoveland将0放入额外块是多余的,因为整数是不可变的。厄尔索斯的回答很好。是的,显然我试过了,不需要额外的钱block@Stefan而厄尔索斯,我并不是在提倡变异;我提到它只是为了提醒爱德华德,以防他看到它是这样写的。
Array.new(3) { Array.new(4, 0) }
 => [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]