Swift 6 中令人困惑的 @isolated(any) 属性:你需要了解的那些事

2025-09-01
Swift 6 中令人困惑的 @isolated(any) 属性:你需要了解的那些事

Swift 6 引入的 `@isolated(any)` 属性,用于描述异步函数的隔离性,初看令人困惑。它总是需要一个参数,但这个参数却不能变化。文章解释了其引入原因:为了解决异步函数在调度时隔离信息丢失的问题,`@isolated(any)` 属性允许访问函数的隔离属性,从而进行更智能的调度,特别是在处理 `Task` 和 `TaskGroup` 时,保证了 MainActor 上任务的执行顺序。虽然多数情况下可以忽略它,但在处理异步函数的隔离性和调度时,了解 `@isolated(any)` 对于编写高效、可靠的并发代码至关重要。

开发 异步函数