飞道的博客

程序员元宵加班搞代码:生成器

304人阅读  评论(0)

程序员元宵加班搞代码:生成器

常规函数只返回一个值(或不返回任何值)。

生成器可以按需一个接一个地返回(“yield”)多个值。它们与可迭代对象一起工作得很好,允许轻松地创建数据流。

生成器函数

为了创建一个生成器,我们需要一个特殊的语法结构:function*,也就是所谓的“生成器函数”。

它是这样的:


   
  1. function* generateSequence() {
  2.   yield  1;
  3.   yield  2;
  4.    return  3;
  5. }

生成器函数的行为与常规函数不同。当这样的函数被调用时,它不会运行它的代码。相反,它返回一个特殊的对象,称为“生成器对象”,来管理执行。

来看看吧:


   
  1. function* generateSequence() {
  2.   yield  1;
  3.   yield  2;
  4.    return  3;
  5. }
  6. // "generator function" creates "generator object"
  7. let generator = generateSequence();
  8. alert(generator);  // [object Generator]

函数代码还没有开始执行:

生成器的主要方法是next()。当被调用时,它会


转载:https://blog.csdn.net/qq_36772866/article/details/114325149
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场