在一行中创建多个数组
我做了:
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]