检查多个枚举案例

问题描述 投票:0回答:1

我有一个包含很多情况的枚举,以及几个用于检查结构是否与其匹配的函数。

现在我做这样的事情:

public enum Type { 
    case A1
    case A2
    case A3
    case B1
    case B2
    case C1
    case C2
    case C3
    case C4
    case C5
    case C6
    //
}

struct myStruct {
    public var type: Type = .A1

    func isA() -> Bool {
       return (type == .A1 || type == .A2 || type == .A3)
    }
}

这可行,但我想知道是否可以简化它。我试过:

func isA() -> Bool {
   return (type == .A1 || .A2 || .A3)
}

但出现了一堆错误:

无法将“Type”类型的值转换为预期的参数类型“Bool”

类型“Bool”没有成员“A1”

类型“Bool”没有成员“A2”

类型“Bool”没有成员“A3”

有没有办法简化这个?

swift enums
1个回答
1
投票

检查集合或数组中的成员资格:

public enum Type { 
    case A1
    case A2
    case A3
    // ...

    var isA: Bool { [.A1, .A2, .A3].contains(self) }
}
© www.soinside.com 2019 - 2024. All rights reserved.