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