ruby – Enumerator#feed的魔力
有这个
Enumerator#feed method,我偶然发现了.它被定义为:
我研究了例子,并认为?Yay!?,这应该使用feed: enum = ['cat','bird','goat'].each # creates an enumerator enum.next #=> 'cat' enum.feed 'dog' enum.next #=> returns 'bird',but I expected 'dog' 但它不行.我假设,它不返回’狗’,因为每个都不在内部使用收益. 事实是,我无法从文档中的给定示例中推断任何真实世界的用例,Google不是这个问题的朋友,(从我所尝试的)feed似乎不能很好地与其他枚举/枚举方法. 请问,请给我一个很好的例子,说明饲料,所以我可以让我的头脑吗? 解决方法def meth [1,2,3].each {|e| p yield(e)} end m = to_enum(:meth) m.next #=> 1 m.feed "e" m.next #printed: "e" #return => 2 正如你所看到的,feed会影响yield的结果,但是会影响枚举器的结果 现在看你自己的例子: a = ['cat','goat'] m = a.to_enum(:map!) m.next m.feed("dog") m.next m.next p a #=> ["dog",nil,"goat"] 饲料工作方式:
有关更多的解释,请看这里的线程: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |