在 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")
}
然后快速帮助看起来像这样:
我想知道允许我写一些文本来替换“无描述”的语法是什么。非常感谢!
最佳答案
据我所知,如果你标记它们,你只能记录闭包参数:
/// 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")
}
这不太理想:它强制您在调用闭包时使用参数标签,如果存在命名冲突,似乎无法区分两者。
编辑:正如@Arnaud 指出的那样,您可以使用 _
来避免在调用闭包时必须使用参数标签:
/// 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)。
关于swift - 您如何在 Swift 3 中记录函数闭包参数的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38669725/