通过代码创建数组

时间:2014-11-04 16:06:05

标签: ruby

我想知道是否可以创建动态数组,即具有代码的数组,具体取决于用户输入。如果用户输入3,代码将创建三个数组。或者,如果用户输入5,代码会创建五个数组。关于如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:1)

print 'How many arrays? ' #=> suppose 5 is entered
arrays = Array.new(gets.to_i) { [] } #=> [[], [], [], [], [], []]

这将创建一个包含5个不同数组的数组。如果您希望每个都存储在一个单独的变量中,您可以使用Ruby允许您动态创建实例变量的事实:

print 'How many arrays? '
number = gets.to_i
number.times.each do |i| # if number is 5, i will be 0,1,2,3,4
  instance_variable_set(:"@array_#{i}", Array.new)
end

p @array_0, @array_1, @array_2, @array_3, @array_4 

假设我们在这里输入3,前3个实例变量(array_0array_3)将打印[],而最后2个将打印nil(因为它们缺少一个值)。

答案 1 :(得分:1)

def create_arrays(n)
  array_collection = []
  n.times {array_collection.push([])}
  array_collection
end