Tôi gặp khó khăn tìm hiểu những gì làm cho các hành vi sau đây có thể (lấy từ cuốn sách ruby cuốc):Lambda Behavior
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
Tôi không thấy như thế nào "power_proc" đối tượng cho phép giá trị để tiếp tục tăng gấp đôi như Tôi sẽ giả định (sai dường như) rằng mỗi cuộc gọi sẽ gán lại giá trị cho 1.
Câu hỏi của tôi là tại sao "3.times {puts power_proc.call}" kết quả "2,4,8" chứ không phải "2, 2,2 "?
Cố gắng nêu câu hỏi của bạn dưới dạng câu hỏi, vì vậy sẽ ít nhầm lẫn hơn. – knownasilya
Xin lỗi về điều đó tôi đã làm rõ với một câu hỏi thực tế. – Discorick