在
Java中,有时可以使用泛型而不关心实际类型.
你能在 Swift中做到吗?
你能在 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>) { /* ... */ }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。