enum Type {
case A
case B
func do() {
}
}
私は私はあなたが列挙型で可能である何をしたいとは思わない場合funcをSwiftのEnumの特定のケースに定義する方法は?
enum Type {
case A
case B
func do() {
}
}
私は私はあなたが列挙型で可能である何をしたいとは思わない場合funcをSwiftのEnumの特定のケースに定義する方法は?
のために利用できるために行うたいと思います。
しかし、それはトリックで行うことができます。
まず、Type
というクラスを作成:
class Type { private init() {} }
をそしてType
を継承するために、2つのクラス、AType
とBType
を作成します。
// Put this in the same file as Type
class AType: Type { private init() {} }
class BType: Type { private init() {} }
プライベート初期化子がAType
を作成するために、外部コードを防ぐことで、 BType
オブジェクトです。 Type
で
static let A = AType()
static let B = BType()
は、その後、あなたは基本的に行われています!
Type.A
にアクセスできる方法を追加するには、AType
クラスに追加するだけです。
このように、Type.A
とType.B
は、Type
オブジェクトに割り当てることができます。
しかし、 'switch'を使用してEnumのアクセントを失ってしまいました。とにかく、ハックのおかげで。 –
私の答えがあなたの質問に答えると思うなら、そのチェックマークをクリックすることでそれを受け入れることを検討してください。 @ user2215977 – Sweeper
あなたの質問は明確ではありません。 Enum型の中のケース固有の関数を定義することはできません。 – Shripada
Type.Aでしか呼び出せないがType.Bではない関数を定義したいと思うと思います。 – Sweeper