如何解决泛型类的扩展
我上课
class MyClass<T> { /***/ }
我要扩展的内容:
extension MyClass where T: Codable & RawRepresentable & CaseIterable { /***/ }
我想限制对String类型的RawValues的扩展,所以我试图做类似的事情:
extension MyClass where T: Codable & RawRepresentable & CaseIterable,RawValue == String {
func doSomething() {
print("doing something with strings!")
}
}
这当然不起作用,但是有办法使它起作用吗?
尽可能地明确将很有帮助
解决方法
您的语法略有错误。 RawValue
属于T
,因此您需要使用以下方式进行引用:
extension MyClass where T: Codable & RawRepresentable & CaseIterable,T.RawValue == String { ... }
^^
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。