本文介绍了有没有一种简单的方法可以测试您是否匹配一组枚举?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
考虑此代码...
switch(testValue) { case .ValueA, .ValueB, .ValueC: return 40 default: return 0 }现在,如果我只是检查一个枚举值,我可以这样做...
Now if I was just checking for a single enumeration value, I could do this...
return (testValue == .ValueA) ? 40 : 0;但是我想知道如何获得类似于后者的东西,但是要像前者那样测试倍数,类似于此伪代码...
But I'm wondering how I can have something like the latter, but testing for multiples like the former, similar to this pseudo-code...
return (testValue is in [.ValueA, .ValueB, .ValueC]) ? 40 : 0;我知道我可以使用内联数组来做到这一点,
I know I can do it with an inline array, like so...
return ([SomeEnum.ValueA, .ValueB, .ValueC].Contains(testValue)) ? 40 : 0;...但是我希望有一些更清洁的东西.有吗?
...but I'm hoping there's something even cleaner. Is there?
推荐答案extension SomeEnum { func isOneOf(values: Value...) -> Bool { return values.contains(self) } }
返回testValue.isOneOf(.ValueA,.ValueB,.ValueC)吗?40:0
更多推荐
有没有一种简单的方法可以测试您是否匹配一组枚举?
发布评论