我试图获得 php生成器函数的逻辑, 到目前为止,我得到的是生成器函数与普通函数完全相同,但您可以根据需要多次使用关键字 yield ,以便提供要迭代的值。这不能通过return关键字来完成。
是否像返回一个数组?
我们在哪里需要发电机?
答案 0 :(得分:4)
生成器允许您循环遍历一系列值,而无需先创建一个数组来保存它们。如果序列永远不会结束(在达到某些条件时使用break
离开循环),或者如果需要很长时间或使用大量内存来创建所有数组元素,这将非常有用。
生成器不是将所有值都收集到数组中,而是根据需要计算每个值,并使用yield
来生成此值。
documentation中的一个示例显示了使用生成器的range()
函数的变体,因此您可以在不占用大量内存的情况下处理非常大的范围。