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

ruby で people 配列から自動的にデータを取り出し、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 に答える