Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift 3中是否可以通过闭包签名重载静态方法?_Ios_Swift_Swift3_Closures_Overloading - Fatal编程技术网

Ios 在Swift 3中是否可以通过闭包签名重载静态方法?

Ios 在Swift 3中是否可以通过闭包签名重载静态方法?,ios,swift,swift3,closures,overloading,Ios,Swift,Swift3,Closures,Overloading,在Swift 3中是否可以通过闭包类型重载静态方法? 例如,我有一个包含两个方法的结构: struct Some { static func doSomething(first: String, @escaping completion: ([Int]?) -> Void) { ... } static func doSomething(first: String, @escaping completion: ([Int]?, String?) -> Void) {

在Swift 3中是否可以通过闭包类型重载静态方法? 例如,我有一个包含两个方法的结构:

struct Some {
  static func doSomething(first: String, @escaping completion: ([Int]?) -> Void) {
    ...
  }

  static func doSomething(first: String, @escaping completion: ([Int]?, String?) -> Void) {
    ...
  }
}
但是,当我尝试调用第一个方法
Some.doSomething(第一个:“Hello”){(numbers)in…}
(带有one参数的闭包)时,编译器会给我一个错误:

“doSomething(first:completion:)”用法不明确

是的,您可以在Swift 3中通过闭包类型重载静态方法,但是 需要将第一个函数的参数类型指定为 它的参数与第二个函数的参数部分匹配


我没有试过,但建议您尝试完全指定一些竞争参数。doSomething(首先:“Hello”){(number:[Int]?)->Void in…}@Bruce0是的,它有效。谢谢你的帮助!
 Some.doSomething(first: "") { (number:[Int]?) in

}

Some.doSomething(first: "") { (number, value) in

}