gpt4 book ai didi

javascript - 有没有办法从多层函数或内部函数中产生变量?

转载 作者:行者123 更新时间:2023-11-30 13:56:50 27 4
gpt4 key购买 nike

像这段带有 ES6 的代码:

function* outer() {
function* inner() {
var a = 100
yield a
}

var gen = inner()
var result = gen.next()
yield result.value
}

function caller() {
var gen = outer()
var result = gen.next()
}
caller()

我可以在没有外部桥接功能的情况下直接在调用者中处理内部的生成器结果吗?如果不是,是否有更好的设计来解决生成器自动运行和生成器递归?谢谢

另一个问题? python 呢?

def outer():
def inner():
a = 100
yield a

b = 200
yield b

gen = inner()
result = next(gen)
yield result
# it works not like js version
# yield inner()


def caller():
gen = outer()
result = next(gen)
print("caller result : ", result)
caller()

最佳答案

在生成器中使用 yield*,您可以从另一个生成器生成所有项目:

function* outer() {
function* inner() {
var a = 100
yield a
}
yield* inner();
}

function caller() {
var gen = outer()
var result = gen.next()
console.log(result);
}
caller()

关于javascript - 有没有办法从多层函数或内部函数中产生变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57108814/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com