逃避关闭我已经阅读了大量的材料对堆栈溢出,我实在不明白这一个:在迅速
我一直在这行代码来自网上的几个小时,我只是不知道为什么会被传递给函数在闭包逃跑,这里是代码:
func composeFunction(functionA: @escaping (Int) -> String, functionB: @escaping (String) -> String) -> ((Int) -> String) {
return {
number in
functionB(functionA(number))
}
}
从苹果公司的文件,闭包逃脱时: 1)在后台线程 2)的封闭运行的异步操作与其范围之外的属性交互(使用self
)
但我没有看到这些正在发生,很多帮助将不胜感激!
谢谢!
谢谢,所以纠正我,如果我错了,为什么'functionA'和'functionB'转义是因为'composeFunction'不知道什么时候返回闭包被调用? –
@BrendonCheung没有太多,它不知道什么时候被调用,但它不知道它何时被释放。对于所有它知道,'composeFunction'调用的结果可以无限期地存储,因此无限期地保持逸出对函数A/B的引用 – Alexander
只要我调用'composeFunction(functionA:randomFuncA ,functionB:randonFuncB)'? –