This question already has answers here:
Can swift closures be set to a default value when used as a parameter in a function?

(4 个回答)


4年前关闭。




在 Swift 中,函数可以为参数设置默认值,如下所示:
func init(name: String = "foo"){...}

具有完成处理程序的函数是否可以具有默认值,以便在调用函数时无需将完成处理程序指定为 nil,类似于以下内容?
func foo(completion: (success: Bool) -> void = nil){...}

最佳答案

你可以这样做:

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

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

关于ios - swift 函数可以有一个默认的完成处理程序吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38106334/

10-14 22:34