我试图尽可能地优化我的代码,但我已经走到了死胡同。
我的代码如下:
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,依此类推......
祝你好运
答案 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
的输出符合预期。