swift - 表达式 () -> () = {} 在 Swift 中是什么意思?

标签 swift swift3 closures

我正在检查一些 Swift 代码,我遇到了这个函数签名:

func foo(withCompletion completion: @escaping () -> () = {}) { ... }

我不确定 () -> () = {} 部分是什么意思? 如果它是默认值,应该如何使用?

有什么想法吗?

代码在Swift 3

最佳答案

completion 参数的类型为 () -> ()。这是一个没有参数且返回类型为空 (void) 的闭包。

= {} 是参数的默认值,这意味着如果您不需要闭包,则实际上不需要传入闭包。

所以你可以这样调用它:

foo(withCompletion: {
    // your code here
})

或(使用尾随闭包语法):

foo() {
    // your code here
}

或者(如果你不想使用完成闭包):

foo()

关于swift - 表达式 () -> () = {} 在 Swift 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45106932/

相关文章:

struct - 如何存储和使用接受引用并返回 future 的可选闭包?

ios - SLComposeServiceViewController高度问题

json - swift 4.2 : Type 'T' does not conform to protocol 'Decodable'

ios - 文件更改时 Xcode 停止读取文本文件

rust - 可以将采用引用的函数作为提供自有值的闭包参数传​​递吗?

scala - Scala 中的闭包与 Java 中的闭包

swift - Kotlin 是否有像 Swift 那样的接口(interface)扩展类

ios - tableView.scrollToRow() 的替代品

arrays - Swift 3 - 转换值时总是得到 nil

objective-c - 无法通过协议(protocol)设置值