整理我的数组红宝石(Organize my array ruby)

2019-10-30 02:47发布

我尝试优化我的代码尽可能地和我已经到了一个死胡同。

我的代码如下所示:

class Person
  attr_accessor :age
  def initialize(age)
    @age = age
  end
end

people = [Person.new(10), Person.new(20), Person.new(30)]

newperson1 = [Person.new(10)]
newperson2 = [Person.new(20)]
newperson3 = [Person.new(30)]

有没有一种方法,我可以得到红宝石自动提取数据出来,从人民阵列,并将它们命名为以下newperson1等..

最好的祝福

Answer 1:

这绝对是一个代码味道。 你应该把它们称为[people[0]] [people[1]] ,...。

但是,如果你坚持这样做,如果你能等到12月25日(红宝石2.1),那么你可以这样做:

people.each.with_index(1) do |person, i|
  binding.local_variable_set("newperson#{i}", [person])
end


Answer 2:

我认为这是你想要做什么?

newperson1 = people[0]
puts newperson1.age

该输出10的预期。



文章来源: Organize my array ruby