有这个Enumerator#feed 方法,我偶然发现的。它被定义为:
feed obj → nil
设置 e 中下一个 yield 返回的值。如果未设置该值,则产量返回 nil。该值在产生后被清除。
我研究了这些示例并认为»耶!«,这应该使用feed
:
enum = ['cat', 'bird', 'goat'].each # creates an enumerator
enum.next #=> 'cat'
enum.feed 'dog'
enum.next #=> returns 'bird', but I expected 'dog'
但它不起作用。我假设,它不会返回'dog'
,因为each
没有在yield
内部使用。
问题是,我无法从文档中的给定示例中推断出任何真实世界的用例,谷歌不是这个问题的朋友,而且(从我尝试过的)feed
似乎与其他Enumerator
/Enumeration
方法。
请你给我一个很好的例子来解释feed
,所以我可以理解它吗?