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
相关产品推荐
相关产品推荐

