代码之家  ›  专栏  ›  技术社区  ›  Greg

如何编写SWIFT DOC注释来关闭参数?[复制品]

  •  0
  • Greg  · 技术社区  · 7 年前

    在xcode 8 beta和swift 3中,当您有一个以闭包作为参数的方法时,例如:

    func foo(bar: (String) -> Void) {
        bar("Hello, world")
    }
    

    如何记录闭包所采用的参数?例如,如果我写了这个:

    /// Calls bar with "Hello, world"
    /// - parameter bar: A closure to call
    func foo(bar: (String) -> Void) {
        bar("Hello, world")
    }
    

    快速帮助如下所示:

    foo(bar:) Quick Help

    我想知道什么是语法,这将允许我写一些文字来代替“没有描述”。非常感谢!

    0 回复  |  直到 7 年前
        1
  •  63
  •   Tim Vermeulen    9 年前

    据我所知,如果只标注封闭参数,你只能记录它们:

    /// Calls bar with "Hello, world"
    /// - parameter bar: A closure to call
    /// - parameter theString: A string to use
    func foo(bar: (theString: String) -> Void) {
        bar(theString: "Hello, world")
    }
    

    这不太理想:它迫使您在调用闭包时使用参数标签,如果存在命名冲突,则似乎无法区分两者。

    编辑 正如阿尔诺指出的,你可以使用 _ 要避免在调用闭包时使用参数标签,请执行以下操作:

    /// Calls bar with "Hello, world"
    /// - parameter bar: A closure to call
    /// - parameter theString: A string to use
    func foo(bar: (_ theString: String) -> Void) {
        bar("Hello, world")
    }
    

    实际上,这是swift 3中唯一有效的方法,因为参数标签不再是类型系统的一部分(请参见 SE-0111 )

    推荐文章