You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何检查枚举数组中是否存在指定枚举case?有无更优方案?

检查枚举数组中是否存在特定Case的更优实现方式

对于你这种无关联值的枚举(且已遵循RawRepresentable,比如这里的Int类型枚举),Swift会自动为其合成Equatable协议实现,因此完全不需要用contains(where:)加闭包的写法,直接使用contains(_:)方法即可,代码更简洁高效:

public enum Product: Int {
    case tv
    case video
    case product1
    case product2
}
let products: [Product] = [.tv, .product1]

// 直接传入目标枚举case即可完成检查
let existsProduct = products.contains(.video)
print(existsProduct) // 输出 false

补充说明

  • 只有当枚举带关联值,且需要针对关联值做自定义匹配时,才需要用到contains(where:)结合case模式匹配的写法。
  • 你的原代码逻辑是正确的,但在当前场景下属于冗余写法,利用Swift自动合成的Equatable实现能大幅简化代码。

内容的提问来源于stack exchange,提问作者jacobcan118

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 05:12:03