Swift Generics相当于Java的任何类型<?>
发布时间:2020-12-14 04:41:23 所属栏目:百科 来源:网络整理
导读:在 Java中,有时可以使用泛型而不关心实际类型. 你能在 Swift中做到吗? 例如,MyClass AnyObject不像MyClass那样工作?会在Java中.在我期望它的工作原理相同. 还有其他方法吗? 解决方法 引入一个类型参数;编译器会让它采用任何类型.尝试: func executeReque
在
Java中,有时可以使用泛型而不关心实际类型.
你能在 Swift中做到吗? 例如,MyClass< AnyObject>不像MyClass那样工作<?>会在Java中.在我期望它的工作原理相同. 还有其他方法吗? 解决方法
引入一个类型参数;编译器会让它采用任何类型.尝试:
func executeRequest<T> (request: APIRequest<T>) { // ... } 例如: class APIRequest<T> {} class Movie {} class MovieRequest : APIRequest<Movie> {} let m = MovieRequest() //print(m) func executeRequest<T> (request: APIRequest<T>) { print(request) } executeRequest(m) 类型参数的引入允许一个更明确并且更好地匹配问题域.例如,在您的情况下,您肯定不能对任何事情进行APIRequest;你可以在资源上做一个APIRequest. protocol Resource {} class Movie : Resource {} class Song : Resource {} class APIRequest<T:Resource> { /* ... */ } func executeRequest<T:Resource> (request: APIRequest<T>) { /* ... */ } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |