微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Swift 3中如何记录函数的闭包参数的参数?

在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")
}

这是不太理想的:它强制您在调用闭包时使用参数标签,如果有命名冲突,似乎没有办法区分两者.

编辑:as @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).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐