在一行中创建多个数组

我做了:

a, b = Array.new(2, [0, 0]) a[0] = 1 

我有:

 a # => [1, 0] 

我有一个问题b ,它与b相同:

 b # => [1, 0] 

问题是参考地址。

帮我在一行中初始化数组。

这在这里提到:

发送第二个参数(到Array.new )时,相同的对象将用作所有数组元素的值:

因此,正如@mudasobwa在评论中已经建议的那样,您需要使用块版本,该版本对每个元素使用块的结果:

 a, b = Array.new(2) { [0, 0] } => [[0, 0], [0, 0]] a[0] = 1 a => [1, 0] b => [0, 0]