0

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

我的代码如下所示:

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 等等..

此致

4

2 回答 2

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
于 2013-10-07T19:23:17.080 回答
-1

我想这就是你想要做的......

newperson1 = people[0]
puts newperson1.age

这个输出10符合预期。

于 2013-10-07T19:27:34.297 回答