Swift嵌套枚举常见类型

时间:2016-10-20 09:59:09

标签: swift enums

是否有清洁更短的方式来撰写以下内容?

protocol AProtocol {}

enum AnEnum {
 enum NestedEnum1: AProtocol {
    case A1, B1
  }

  enum NestedEnum2: AProtocol {
    case A2, B2
  }
}

func makeItRain(_ rain: AProtocol)

梦想就是写下以下内容 -

func makeItRain(_ rain: AnEnum)

- 接受 NestedEnum1 NestedEnum2 作为输入(不必符合 AProtocol )。

1 个答案:

答案 0 :(得分:1)

enum AnEnum {
    enum NestedEnum1 {
        case A1, B1
    }

    enum NestedEnum2 {
        case A2, B2
    }

    case nestedEnum1(NestedEnum1)
    case nestedEnum2(NestedEnum2)
}

并在您的makeItRain功能中切换.nestedEnum1nestedEnum2个案例。

//你必须在AnEnum.NestedEnum1 tho的情况下包裹AnEnum.NestedEnum2AnEnum