我有一个包含很多情况的枚举,以及几个用于检查结构是否与其匹配的函数。
现在我做这样的事情:
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”
有没有办法简化这个?
检查集合或数组中的成员资格:
public enum Type {
case A1
case A2
case A3
// ...
var isA: Bool { [.A1, .A2, .A3].contains(self) }
}