我有困難的理解是什麼使以下行爲可能(從紅寶石鎬書所):LAMBDA行爲
def power_proc_generator
value = 1
lambda {value += value}
end
power_proc = power_proc_generator
3.times {puts power_proc.call} # => 2,4,8
3.times {puts power_proc_generator.call()} # => 2,2,2
我沒有看到「power_proc」對象如何允許值繼續增加一倍我會假設(錯誤地看來)每個電話會重新分配值1.
我的問題是爲什麼「3.times {puts power_proc.call}」結果爲「2,4,8」而不是「2, 2,2「?
試着說出你的問題是一個問題,所以沒有什麼困惑。 – knownasilya
對不起,我用一個實際的問題澄清。 – Discorick