在Swift中,应该使用参数类型或返回值来隐式地专门化泛型函数.问题是,当我调用这样的函数时:
func serialize<T>(continuation: GenericWithLongName<T, NSError> -> Void) -> Void
Run Code Online (Sandbox Code Playgroud)
我不能写
serialize<SomeType> {
obj in
...
}
Run Code Online (Sandbox Code Playgroud)
它应该是
serialize {
(obj: GenericWithLongName<SomeType, NSError>) -> Void in
...
}
Run Code Online (Sandbox Code Playgroud)
看起来很痛苦.
这个"特征"似乎存在了很长时间.这是一个设计决定吗?允许明确专业化是否有任何负面影响?
有没有什么方法可以使代码变得整洁干净,而无需重构那个泛型类?
swift ×1