2

これはコードで説明するのが一番です。このクラスを考えると:

class Simple
  def initialize
    @a, @b, @c = 0.0, 0.0, 0.0
  end
  attr_accessor :a, :b, :c
  def addOne()
    for i in [@a, @b, @c] do
      i += 1.0
    end
  end
end
s = Simple.new
s.addOne()
puts s.a
# outputs 0.0

それが言うことを実際に行うよう変更するにはどうすればよいですか? (for ループ内のすべての変数に 1 を追加)addOne()

for i in ...は、実際にi=@aは で数値の新しいインスタンスを作成するa をラップしていると思います@a。しかし、いくつかのインスタンス変数をループしてその場で変更する方法がわかりません。私の実際のクラスは明らかにもっと複雑であることに注意してください。そうです、変数をループしたいのです。

4

2 に答える 2