问题描述
我上课
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 { ... }
^^