Swift函数是否能够拥有默认的完成处理程序?

6
在Swift中,函数可以像这样为参数设置默认值:
func init(name: String = "foo"){...}

一个带有完成处理程序的函数是否可以具有默认值,以便在调用函数时无需指定completionHandler为nil,类似于下面的示例?

func foo(completion: (success: Bool) -> void = nil){...}

你想要默认值为nil,还是想要默认值为某个特定的完成处理程序? - matt
1个回答

38

你可以选择这样做:

func foo(completion: (success: Bool) -> Void = {_ in }) {
    completion(success:true)
}

或者这样:

func foo(completion: ((success: Bool) -> Void)? = nil) {
    completion?(success:true)
}

1
@escaping 是什么? - Zaporozhchenko Oleksandr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接