表达式() - >()= {}在Swift中意味着什么?

For*_*rge 3 closures swift swift3

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

func foo(withCompletion completion: @escaping () -> () = {}) { ... }
Run Code Online (Sandbox Code Playgroud)

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

任何的想法?

代码是 Swift 3

rma*_*ddy 7

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

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

所以你可以这称为:

foo(withCompletion: {
    // your code here
})
Run Code Online (Sandbox Code Playgroud)

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

foo() {
    // your code here
}
Run Code Online (Sandbox Code Playgroud)

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

foo()
Run Code Online (Sandbox Code Playgroud)