swift - 我可以在不使用 switch 语句的情况下测试枚举值是否是特定情况吗?

标签 swift enums

<分区>

考虑:

enum Test {
    case foo
    case bar
    case baz
    case etc
}

var test: Test = ...

我特别想测试枚举是否为bar。我可以只使用 switch 语句:

switch test {
case .bar:
    doSomething()
default:
    break
}

如果我可以改用 if 会更整洁:

if test == .bar {
    doSomething()
}

但除非我遗漏了什么,否则没有办法做到这一点:

二元运算符“==”不能应用于两个“测试”操作数

这是否可能,如果不可能,这是一个经过深思熟虑的语言设计决定吗?

最佳答案

您可以使用if-case 操作数

if case .foo  = test {
   doSomething()
}

关于swift - 我可以在不使用 switch 语句的情况下测试枚举值是否是特定情况吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42182692/

相关文章:

ios - 如何让 CRL 和 OCSP 检查在 iOS 上工作?

swift - 在 swift 中解析 XML 失败并出现 nil 错误

ios - 使用 NSUserDefaults 在 Swift 中保存和加载高分

swift - Cocoa:在文本单元格(NSTextField)被编辑后得到通知并在 Swift 4 的 NSTableView 中添加文本单元格后开始编辑文本单元格?

iOS 处理多个推送通知

objective-c - 不明白方法声明中出现 "Expected a type"编译错误的原因,定义类型时

ruby-on-rails - Rails Enum,如何从数组中删除一个值?

java - 如何在枚举中调用附加方法?

generics - 为什么我不能在通用枚举类上调用 .values() ?

java - getClass() 在 Enum 中使用构造函数时打印二进制格式