gpt4 book ai didi

swift - 如何在本地闭包中调用非转义闭包?

转载 作者:搜寻专家 更新时间:2023-10-31 08:25:18 24 4
gpt4 key购买 nike

<分区>

我有一个看起来像这样的函数:

func test(closure: () -> ()) {
let localClosure = { closure() }

localClosure()
}

这只是一个例子,并不能完全反射(reflect)我遇到的问题,显然这里我可以直接调用closure!

应该清楚,在上面的代码中,closure是无法逃逸的。但是,我收到错误:

Closure use of non-escaping parameter 'closure' may allow it to escape

现在,如果 localClosure 以某种方式转义,我会理解这个错误,但它不会转义。我什至尝试将 localClosure 注释为 @noescape(即使该属性在 Swift 3 中已弃用),根据我收到的警告:

@noescape is the default and is deprecated

如果 localClosure 默认情况下是非转义的,那么为什么另一个非转义闭包不能进入其中?或者这是编译器的错误/限制?

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