2017-12-14 8 views
0

文字列に基づいて列挙型を拡張する拡張機能を作成しようとしています。すべての列挙を拡張する方法は、RawRepresentableを拡張することですが、文字列のみに制限したいと考えています。Raw値型に文字列を使用するRawRepresentablesのみを拡張できますか?

extension RawRepresentable where RawRepresentable.RawValue == String{ 

    func foo(){ 

     let myRawValue:String = self.rawValue 

    } 
} 

これを達成するにはどのように 'where'句を指定しますか?

答えて

0

String Sに基づいてちょうどRawRepresentable Sを拡張するには、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 
+0

[[ヘッドスラップ]]どのように私はそれを逃しました!ありがとう! – MarqueIV

関連する問題