zoukankan      html  css  js  c++  java
  • 生成器 Generators

    function* quips(name) {
      yield "你好 " + name + "!";
      yield "希望你能喜欢这篇介绍ES6的译文";
      if (name.startsWith("X")) {
        yield "你的名字 " + name + "  首字母是X,这很酷!";
      }
      yield "我们下次再见!";
    }
    • 普通函数使用function声明,而生成器函数使用function*声明。
    • 在生成器函数内部,有一种类似return的语法:关键字yield。二者的区别是,普通函数只可以return一次,而生成器函数可以yield多次(当然也可以只yield一次)。在生成器的执行过程中,遇到yield表达式立即暂停,后续可恢复执行状态。
      > var iter = quips("jorendorff");
        [object Generator]
      > iter.next()
        { value: "你好 jorendorff!", done: false }
      > iter.next()
        { value: "希望你能喜欢这篇介绍ES6的译文", done: false }
      > iter.next()
        { value: "我们下次再见!", done: false }
      > iter.next()
        { value: undefined, done: true }
  • 相关阅读:
    [ Python ] 递归函数
    [ Python ] 计算器
    [ Python ] 模块详解
    [ python ] 项目:haproxy配置文件增删改查
    [ Python ] 装饰器详解
    iOS设计
    Swift
    Swift
    iOS
    Swift
  • 原文地址:https://www.cnblogs.com/avidya/p/7424940.html
Copyright © 2011-2022 走看看