组织我的阵列红宝石

时间:2013-10-07 19:15:29

标签: ruby arrays class

我试图尽可能地优化我的代码,但我已经走到了死胡同。

我的代码如下:

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)]

有没有办法可以让ruby自动从人员阵列中取出数据并将其命名为newperson1,依此类推......

祝你好运

2 个答案:

答案 0 :(得分:0)

这绝对是代码味道。您应该将其称为[people[0]][people[1]],....

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

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

答案 1 :(得分:-1)

我认为这就是你要做的......

newperson1 = people[0]
puts newperson1.age

10的输出符合预期。