我查看了一些Swift
代码并且我遇到了此功能签名:
func foo(withCompletion completion: @escaping () -> () = {}) { ... }
我不确定() -> () = {}
部分的含义是什么?
如果它是默认值,应该如何使用?
有什么想法吗?
代码为Swift 3
答案 0 :(得分:7)
completion
参数的类型为() -> ()
。这是一个没有参数且具有空(void)返回类型的闭包。
= {}
是参数的默认值,这意味着如果您不需要,则实际上不需要传递闭包。
所以你可以这样称呼:
foo(withCompletion: {
// your code here
})
或(使用尾随闭包语法):
foo() {
// your code here
}
或(如果您不想使用完成闭包):
foo()