zoukankan      html  css  js  c++  java
  • generator(生成器)

    generator和函数不同的是,generator由function*定义(注意多出的*号),并且,除了return语句,还可以用yield返回多次。

    function* dawn(max) {
    var
    t,
    a = 0,
    b = 1,
    n = 0;
    while (n < max){
    yield a;
    [a, b] = [b, a + b];
    n ++;
    }
    return
    }
    function* foo(x) {
    yield x + 1;
    yield x + 2;
    return x + 3;
    }
    var f = dawn(5);
    /*
    next()方法会执行generator的代码,然后,每次遇到yield x;就返回一个对象{value: x, done: true/false},
    然后“暂停”。返回的value就是yield的返回值,done表示这个generator是否已经执行结束了。如果done为true,
    则value就是return的返回值。
    */
    //第一种方法
    console.log('第一次', f.next());
    console.log('第二次', f.next())
    //第二种方法
    for (var x of dawn(10)) {
    console.log(x); // 依次输出0, 1, 1, 2, 3, ...
    }
  • 相关阅读:
    CSS 选择器之复合选择器
    答辩ppt
    开题报告
    ADS1110/ADS1271
    电感、磁珠和零欧电阻的区别
    ROM、RAM、DRAM、SRAM和FLASH区别
    运放的带宽
    ADC 分辨率和精度的区别
    Verilog
    C语言 文件读取
  • 原文地址:https://www.cnblogs.com/ycyh1314/p/10572089.html
Copyright © 2011-2022 走看看