我试图编写一个基于字符串扩展枚举的扩展程序。我知道扩展所有枚举的方法是扩展RawRepresentable,但我希望它仅限于字符串。
extension RawRepresentable where RawRepresentable.RawValue == String{
func foo(){
let myRawValue:String = self.rawValue
}
}
那你怎么指定一个'哪里有'条款实现这个?
答案 0 :(得分:1)
要仅基于RawRepresentable
扩展String
,where
子句只是where RawValue == String
:
extension RawRepresentable where RawValue == String {
func foo() {
let myRawValue:String = self.rawValue
print(myRawValue)
}
}
enum Flintstone: String {
case fred, wilma, pebbles
}
Flintstone.fred.foo() // fred