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

本文探讨了Javascript和Python中生成器函数的使用,尽管两者都使用yield关键字,但Javascript需要在函数声明前加星号,而Python则不需要。文章提出疑问,为何Javascript会有此额外标识,并推测这可能是出于语言设计的考虑。ES2015引入生成器时的决策过程被提及,暗示其背后可能有特定的语法和语境考量。
摘要由CSDN通过智能技术生成

一个Javascript的生成器函数是这样的:

function *gen(n) {

for (let i = 0; i < n; i++) {

yield i;

}

}

[...gen(10)]

//

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的制定过程相当和谐(字面意义上的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值