在 Ruby 中创建空子数组的数组

Ned*_*ddy 5 ruby arrays multidimensional-array

我想创建一个由n多个不同的空子数组组成的数组。

这是最好的方法吗?

Array.new(n){ [] }
Run Code Online (Sandbox Code Playgroud)

本来是这样的,但我看了评论后修改了:

Array.new(n){ |_| [] }
Run Code Online (Sandbox Code Playgroud)

我试过:

Array.new(n, [])
Run Code Online (Sandbox Code Playgroud)

但它创建了一个数组,其中所有子数组都是同一个对象,这是我不想要的。

knu*_*gie 2

Array.new(n) { [] }完全没问题!
该块确保创建 Array 的新实例n一次。正如您所指出的,否则您将多次引用同一对象(数组的实例)n