问题标签 [capture-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
154 浏览

swift - 为什么必须对隐式解包变量的捕获对象引用进行解包?

在我的项目中,尝试使用带有闭包的捕获列表,但我注入了隐式解包的依赖项,因为我保证它们将通过依赖项注入填充。我发现使用捕获列表会导致编译错误。

这是错误:

在此处输入图像描述

我可以通过在闭包内强制展开来解决这个问题,但我很惊讶考虑到隐式展开声明,这是必要的。为什么这一步是必要的?这是错误还是功能?

0 投票
1 回答
97 浏览

swift - 是否有任何解决方法可以快速指定内部 func 捕获列表及其修饰符

我在 swift 规范中搜索了内部 func 上的捕获列表,但没有运气,有没有办法打破这种参考循环?

0 投票
4 回答
2521 浏览

c++ - 将 unique_ptr 移入 lambda 时,为什么不能调用 reset?

进入std::unique_ptrlambda 时,无法调用reset()它,因为它似乎是 const :

  1. 为什么会这样?
  2. 是否可以以另一种方式捕获std::unique_ptr允许reset()在 lambda 中调用(使用 C++17 或更高版本)?
0 投票
1 回答
58 浏览

swift - Swift:使用弱自我在基于块的执行中保持原子性

我经常看到使用弱自我的代码,如下所示:

但在我看来,如果 self 为零,现在状态不一致,因为 setGlobalState() 会执行但 self?.doSomething() 没有。

看起来明智的做法如下:

我对第一种情况下缺乏原子性的担忧是否合法?对于使用弱自我的块,后一种情况是否应该是最佳实践?

0 投票
0 回答
36 浏览

swift - 捕获列表中的函数:“无关参数标签”错误

这段代码很好:按预期编译和工作。
但是当我在捕获列表中传递函数本身而不是self

我得到错误:

调用中的无关参数标签“编号:”

当我删除标签时,一切都恢复正常。
但这很奇怪。它是什么?错误或功能?我在文档和论坛中都找不到有关此的任何信息。

奖励问题:当我传递到捕获列表
时,为什么代码不会崩溃?unowned self不应该崩溃吗?我想让它崩溃

编辑:
顺便说一句,这种情况下捕获self和函数本身有什么区别吗?在保留周期等方面。如果我们捕获函数,self也会被捕获,不是吗?

0 投票
1 回答
45 浏览

swift - SwiftUI 表闭包捕获列表语法

如何将捕获列表添加到 SwiftUI .sheet(content: ) 闭包?

我在 SwiftUI 和内容中有一张工作表:closure 我检查一个可选的值以确定要显示的视图。第一次运行时,即使我事先设置了它,它的值也总是为零。我提交了一份错误报告,Apple 说如果我在闭包的捕获列表中引用该变量,那么它将按预期工作。我是 SwiftUI 的新手,无法弄清楚这样做的正确语法。语法是什么?