考虑这段代码......
switch(testValue)
{
case .ValueA,
.ValueB,
.ValueC:
return 40
default:
return 0
}
现在,如果我只是检查单个枚举值,我可以这样做......
return (testValue == .ValueA)
? 40
: 0;
但是我想知道我怎么能拥有像后者这样的东西,但是测试像前者一样的倍数,类似于这个伪代码......
return (testValue is in [.ValueA, .ValueB, .ValueC])
? 40
: 0;
我知道我可以使用内联数组来完成它,就像这样......
return ([SomeEnum.ValueA, .ValueB, .ValueC].Contains(testValue))
? 40
: 0;
...但我希望那里有更清洁的东西。有吗?
答案 0 :(得分:0)
extension SomeEnum {
func isOneOf(values: Value...) -> Bool {
return values.contains(self)
}
}
return testValue.isOneOf(.ValueA, .ValueB, .ValueC) ? 40 : 0