これはコードで説明するのが一番です。このクラスを考えると:
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
。しかし、いくつかのインスタンス変数をループしてその場で変更する方法がわかりません。私の実際のクラスは明らかにもっと複雑であることに注意してください。そうです、変数をループしたいのです。