1
在Swift中,應該使用參數類型或返回值來隱式地專用通用函數。問題是,當我這樣調用函數:爲什麼明確地專門化泛型函數是不允許的?
func serialize<T>(continuation: GenericWithLongName<T, NSError> -> Void) -> Void
我不能只是寫
serialize<SomeType> {
obj in
...
}
應該
serialize {
(obj: GenericWithLongName<SomeType, NSError>) -> Void in
...
}
看起來痛苦。
看起來這個「功能」存在了很長一段時間。這是一個設計決定嗎?允許明確的專業化有什麼負面影響嗎?
有沒有什麼辦法可以使上面的代碼整潔乾淨而不會重構那個泛型類?