[英]Is it possible to overload static method by closure signature in Swift 3?
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 :)'的歧義用法
是的,您可以在Swift 3中按閉包類型重載靜態方法,但是您需要為第一個函數指定參數的類型,因為其參數與第二個函數的參數部分匹配
Some.doSomething(first: "") { (number:[Int]?) in
}
Some.doSomething(first: "") { (number, value) in
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.