Gre*_*ley 15 concurrency actor swift swift5
假设我们有以下目标:
\n所以具体的问题是:我们如何才能使 Swift actor 遵守协议,同时保持隔离?
\nprotocol Zippity {\n func foo()\n}\n\nactor Zappity: Zippity {\n func foo() {} // Doesn\'t compile\n}\nRun Code Online (Sandbox Code Playgroud)\n我可以用 \xe2\x80\xa6 编译它
\nactor Zappity: Zippity {\n nonisolated func foo() {}\n}\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\xa6 但这似乎违背了目的。我还尝试声明接口方法async,但也无法编译。
我可以想到几种合理的解决方法,包括组合、nonisolated async调用独立方法的方法等,但想看看是否有我遗漏的东西。
Gre*_*ley 32
好的,我已经找到了答案,而且非常简单:
protocol Zippity: Actor {
func foo()
}
actor Zappity: Zippity {
func foo() // This is a properly isolated method
}
Run Code Online (Sandbox Code Playgroud)
似乎声明符合Actor协议可以启用编译器的魔力。
| 归档时间: |
|
| 查看次数: |
3551 次 |
| 最近记录: |