python中yield什么意思,yield是python的关键字吗-

  python中yield什么意思,yield是python的关键字吗?

  MDN产量关键字描述:

  Theeldkeyword是isusedtopause和sumegenerator函数(function * orlegacygeneratorfunction)。

  //yield关键字用于暂停和恢复生成器函数((function*或传统生成器函数))。

  yield是个啥?

  首先请注意,yield是关键词,不是函数。与var和let关键字声明不同,yield类似于return,它返回紧跟在语句后面的表达式的值。与return不同,return只能运行一次,而yeild可以运行多次。

  yield用法

  [RV]=产量[表达式];//rv是可选的。传递给生成器next))方法,然后重新开始执行。//expression是可选的。定义迭代器契约从生成器函数返回的值。如果省略,请参考未定义的关于Generator函数

  Yield只能在生成器功能中使用。function * fun() {}这是生成器功能。

  生成器函数有两个特征。

  1.在函数和函数名之间*

  2.他需要在内部用yield关键字中断执行。

  关于next()方法

  yield表达式本身没有返回值,或者总是返回undefined。下一个方法可以包含被视为前一个yield表达式的返回值的参数。

  ***Generator函数、yield关键字、next方法像是一个铁三角一样,以组合方式出道***

  看了这么多,你可能还在发呆。举个例子:

  设num=1;function * function())num;产量;退货数量;} let resFun=fun(;console.log(编号;//此时,控制台上会出现什么?//此时num的值==1。为什么会吵?因为,让resFun=fun(;由于这段代码只声明了这个函数,而human函数中的代码还没有执行,所以num=1。//当你尝试执行这个函数中的代码时,需要let res1=RES fun.next (next))方法来支持。console.log(编号;//此时num=2//借此机会看看next()返回的是什么样的let res2=resFun.next)。console . log(RES1;返回{value:undefined,done:false } console . log(res2);Return {value:2,done: true}(至此,你明白了吧?

  总结一下:

  1)如果遇到yield公式,暂时停止后续操作的执行,将yield后公式的值作为返回对象的value属性值。

  )2)下次调用next方法时,继续执行,直到遇到下一个yield表达式。

  )3)如果没有遇到新的yield公式,运行到函数结束,将return语句后公式的值作为返回对象的value属性值。

  )4)如果这个函数没有return语句,则返回对象的value属性值是未定义的。

  兼容性:(除了ie其他都可以)

  虽然一般不能在前端使用这个关键词,但是多了解一下比较好。如果在面试中使用呢?

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: