由什么组成的生成器 是由什么做成的生成器
生成器由函数和迭代器组成。构造函数生成器创建的对象也是迭代器,也是可迭代对象,但只能迭代一次。这是因为它们不会将所有的值都存储在内存中,而是在运行时生成值。您可以通过遍历来使用它们,或者使用“for”循环,或者将它们传递给任何可以迭代的函数和结构。大多数时候,生成器是作为函数实现的。
生成器:必须使用生成器函数来创建一个生成器。
如何编写函数:
函数*方法(){
}
在生成器函数内部执行:生成器函数内部是为生成器每次迭代提供的数据;每次调用生成器的下一个方法,生成器函数都会运行到下一个yield关键字位置;Yield是一个关键字,只能用在generator函数内部来表示“产生”一个迭代数据。
需要注意的细节:
1.生成器函数可以有返回值,当第一个done为真时出现在value属性中;
2.调用生成器的下一个方法时,可以传递参数,传递的参数会交给yield表达式的返回值;
3.第一次调用next方法时,传递参数没有任何意义;
4.在生成器函数中,可以调用其他生成器函数,但要注意添加一个*符号。
生成器的其他API:
返回方法:调用该方法提前结束生成器函数,从而提前结束整个迭代过程;
Throw方法:调用该方法会在生成器中生成错误。