Ruby迭代器多达方法编号数组


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

我的目标是最终得到3个这样命名的空数组

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

如何使此代码正常工作?

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

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

arr = []
1.upto(3) do |n|
  arr << Array.new
end

或者,如果您需要保留自定义索引,可以使用Hash:

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

最新更新