You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何为解构赋值元组元素添加Xcode可识别的独立文档注释

结论

截至Swift 5.10正式版,不存在直接在元组解构声明中为单个解构变量添加Xcode可识别独立文档注释的语法支持。

具体原因
  • Swift的DocC文档注释解析规则,仅会识别挂载在完整声明语句之前的///或/** */格式注释,解构语法的括号内部不属于文档注释的合法挂载位置,你尝试的在括号内逐变量加注释的写法,会被解析器直接忽略,Xcode无法读取到对应注释内容。
  • 若仅在整个解构声明语句前添加统一文档注释,这份注释会被同时绑定到该语句声明的所有变量上,无法做到分开展示。
可落地的替代写法

不要用解构语法一次性声明多个变量,改为先单独声明每个变量、为其添加独立文档注释,再通过解构赋值完成初始化,逻辑和最终运行效果和原写法完全一致,同时可以正常触发Xcode的文档悬浮展示。

针对你举的Promise属性场景,类/结构体中的存储属性参考写法如下:

/// Promise that will resolve when we receive the view's title.
private var titlePromise: Promise<String>
/// Resolver function for the view's title.
private var titleSeal: (String) -> Void

init() {
    (titlePromise, titleSeal) = Promise<String>.pending()
}

如果是函数内部的局部变量,写法更简洁:

/// Promise that will resolve when we receive the view's title.
var titlePromise: Promise<String>
/// Resolver function for the view's title.
var titleSeal: (String) -> Void
(titlePromise, titleSeal) = Promise<String>.pending()

这种写法下,光标悬浮在任意一个变量上时,Xcode只会展示对应变量的专属文档说明,不会出现两个变量共用同一份注释的问题。


内容的提问来源于stack exchange,提问作者bdesham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 01:18:21