为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript的生成器函数要多加一个星号,Python却不需要额外标识,为什么这样设计?

Javascript的生成器函数要多加一个星号,Python却不需要额外标识,为什么这样设计?

明月笑刀无情 2019-03-22 18:15:38
一个Javascript的生成器函数是这样的:function *gen(n) {  for (let i = 0; i < n; i++) {    yield i;  }}[...gen(10)]// <- (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]Javascript在声明的时候要多加一个星号。如果不加星号,会报SyntaxError。一个python的生成器函数是这样的:def gen(n):  for i in range(n):    yield i>>> list(gen(10))[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]python在声明的时候不需要额外标识。直接用yield就行了。两个语言都用了yield关键词,工作原理也几乎相同,甚至可以说Javascript就是抄的python。那为什么Javascript反而要多加一个星号呢?这个星号有什么意义?为什么要这样设计?是Javascipt太特殊,还是python太特殊?我相信这应该是有原因的,毕竟ES2015的制定过程相当和谐(字面意义上的)
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 548 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信