有没有办法在 Swift 中缩写以下类型的条件?
if ( (myEnum == .1 || myEnum == .2 || myEnum == .3 || myEnum == .8) && startButton.isSelected )
我试着输入:
if ( (myEnum == .1 || .2 || .3 || .8) && startButton.isSelected )
和:
if ( (myEnum == .1,.2,.3,.8) && startButton.isSelected )
但这些都不起作用。我也尝试查看文档,但找不到类似的示例。
谢谢!
最佳答案
我不认为有一种方法可以按照你想要的方式缩写它,但也许有另一种方法来处理同一件事......
extension YourEnum {
var someCondition: Bool {
switch self {
case .1, .2, .3, .8:
return true
default:
return false
}
}
}
通过这样做,您在调用站点的情况将变为...
if myEnum.someCondition, startButton.isSelected {
doTheThing()
}
通过使用这种方法,您的代码也变得更具可读性。您现在可以为您的条件起一个其他开发人员(包括您 future 的自己)能够理解的合理名称。以前我不知道为什么选择这些案例。
它还允许您在多个地方使用此条件并且只有一个实现。因此,如果需求发生变化,您可以在一处进行更改。
关于swift - 是否可以在 Swift 中缩写此条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48706702/