Arrays Ruby迭代器直到方法编号数组

Arrays Ruby迭代器直到方法编号数组,arrays,ruby,iterator,Arrays,Ruby,Iterator,我的目标是以3个空数组结束,命名如下 1.upto(3) do |n| arr"#{n}" = Array.new end 如何使此代码工作?您正在尝试动态创建局部变量。这是个坏主意,也不容易,不可能实现 正如已经有人建议的那样,使用数据结构来存储。您正在有效地创建阵列,为什么不使用阵列来存储它: arr1 = [] arr2 = [] arr3 = [] 你为什么不使用二维数组或以n值作为键的散列呢?@guitarman我太傻了,不明白你刚才说的“也不容易实现”应该被理解为“不可能”

我的目标是以3个空数组结束,命名如下

1.upto(3) do |n|
  arr"#{n}" = Array.new
end

如何使此代码工作?

您正在尝试动态创建局部变量。这是个坏主意,也不容易,不可能实现

正如已经有人建议的那样,使用数据结构来存储。您正在有效地创建阵列,为什么不使用阵列来存储它:

arr1 = []
arr2 = [] 
arr3 = []

你为什么不使用二维数组或以
n
值作为键的散列呢?@guitarman我太傻了,不明白你刚才说的“也不容易实现”应该被理解为“不可能”。另外还有一个
绑定的"局部变量"集
,它所做的并不完全符合建议,也没有办法将局部变量从一个上下文传播到另一个上下文。根据记录,局部变量可以在Ruby v1.8中创建(使用g
eval
),但不能在更高版本中创建。
arr = []
1.upto(3) do |n|
  arr << Array.new
end
arr = {}
1.upto(3) do |n|
  arr[n] = Array.new
end