這是最好的代碼解釋。鑑於這種類:循環使用實例變量,如何更改它們?
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
我怎樣才能改變addOne()
實際做出來嗎?(在加1到所有瓦爾for循環)
我猜測,實際上for i in ...
包裝了[email protected]
它創建於@a
數量的新實例。但我看不出任何方法可以循環使用幾個實例變量並將其更改。請注意,我的真實課程顯然更復雜。所以,是的,我確實想循環變量。
sawa's是國際海事組織更直接的,但我喜歡這個答案,因爲它將對訪問者進行任何其他抽象(因爲OP已使訪問器可用)。 –