Xem xét một Enumerator đơn giản như thế này:Tại sao Enumerator.new yêu cầu đối tượng "yielder"?
natural_numbers = Enumerator.new do |yielder|
number = 1
loop do
yielder.yield number
number += 1
end
end
Câu hỏi của tôi là: Tại sao ruby yêu cầu chúng tôi gọi năng suất trên đối tượng yielder? Nói cách khác: Tại sao chúng ta không thể thay thế yielder.yield number
bằng yield number
? Trong ví dụ này, nó sẽ được xuất hiện để được điều tương tự, nếu nó được cho phép. Có những ví dụ mà yielder được sử dụng một cách không tầm thường? Nếu có, bạn có thể cho một cái không? Nếu không, mục đích của yielder là gì?
Cảm ơn.