是否可以通过Swift 3中的闭包类型重载静态方法? 例如,我有一个包含2个方法的结构:
struct Some {
static func doSomething(first: String, @escaping completion: ([Int]?) -> Void) {
...
}
static func doSomething(first: String, @escaping completion: ([Int]?, String?) -> Void) {
...
}
}
但是当我尝试调用第一个方法Some.doSomething(first: "Hello") { (numbers) in ... }
(带有一个参数的闭包)编译器给出了一个错误:
模糊地使用'doSomething(first:completion :)'
答案 0 :(得分:2)
是的,你可以通过Swift 3中的闭包类型重载静态方法,但是你 需要为第一个函数指定参数的类型 它的参数与第二个函数的参数部分匹配
Some.doSomething(first: "") { (number:[Int]?) in
}
Some.doSomething(first: "") { (number, value) in
}