|
|
1
7
这个 documentation for the rewind method 在细节上有点缺乏。但为了“重新启动”,发电机必须做两件事之一:
第二种情况并不总是可行的;例如,如果生成器从网络发出字节缓冲区,则输出并不完全是内部状态的函数。但是任何使用第一种技术的生成器都必须在使用时在内存中建立一个越来越大的缓冲区。与列表相比,这种生成器几乎没有性能优势。
|
|
|
2
2
生成器是基于堆栈的,Ruby的枚举器是 经常 专门的(在解释器级别)而不是基于堆栈的。 |
|
|
3
1
Ruby的枚举器在内部使用StopIteration类,请参见 How do Enumerators work in Ruby 1.9.1? 应该 |