/* Page prose (zh-Hans) */
"SendableClosuresIntro" = "# `@Sendable` 闭包：一个 detached 任务对你的要求\n\n那些错误其实都关乎一件事：一个在与你写它的地方*不同*的隔离域中运行的闭包必须是 **`@Sendable`**：可以安全地交出去并发运行。那就是你传给 `Task.detached { }`（以及 `TaskGroup`）的闭包。为了保持它安全，一个 `@Sendable` 闭包在它可以捕获什么上受到限制：\n\n* 它可以自由地捕获 **Sendable** 值（它们可以安全地带到另一边）。\n* 它**不可以**捕获像可变的类这样的非 Sendable 类型（那就是 `OrderCount` 错误）。\n* 它**不可以**捕获一个局部 `var` 并修改它，因为那个 `var` 活在外部的域里，而闭包在另一个域中运行：一个天生的竞争。\n\n最后这一条会让人栽跟头，所以直接来看它：\n\n```swift\nvar runningTotal = 0\n\nTask.detached {\n    runningTotal += 1   // will not compile: mutated from another domain\n    print(runningTotal)\n}\n```\n\n编译器拒绝这次修改：*\"main actor-isolated var 'runningTotal' can not be mutated from a nonisolated context.\"* 修复办法是同一族答案：不要跨越边界共享可变状态。计算出一个值，让任务把它*返回*，或者把修改经由一个 actor 来路由：";
"SendableClosuresWrap" = "一旦你把“一个 `Task` 闭包只能携带 Sendable 的东西”内化于心，这些错误中的大多数读起来就像有用的提醒，而不是障碍。\n\n[上一页](@previous)  |  第 9 / 11 页  |  [下一页: Swift 6：编译期安全](@next)";
