是否有清洁或更短的方式来撰写以下内容?
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 )。
答案 0 :(得分:1)
enum AnEnum {
enum NestedEnum1 {
case A1, B1
}
enum NestedEnum2 {
case A2, B2
}
case nestedEnum1(NestedEnum1)
case nestedEnum2(NestedEnum2)
}
并在您的makeItRain
功能中切换.nestedEnum1
和nestedEnum2
个案例。
//你必须在AnEnum.NestedEnum1
tho的情况下包裹AnEnum.NestedEnum2
和AnEnum
。