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

如何在带关联值的Swift枚举中结合if与case判断类型

如何判断Swift枚举实例是否为带关联值的case b

针对你定义的枚举,判断实例是否为case b有两种常见写法,取决于你是否需要获取关联的NSDictionary值:

1. 仅判断case类型,不需要关联值

直接使用if case模式匹配,语法是if case 枚举case = 实例,不需要加==:

let theType = TheType.b([:])
if case .b = theType {
    // 确认是case b,执行逻辑
}
// 也可以明确写出枚举类型:
if case TheType.b = theType {
    // ...
}

如果想用通配符_忽略关联值,正确写法是:

if case .b(_) = theType {
    // ...
}

2. 需要同时获取关联的NSDictionary值

如果需要使用case b绑定的字典,可以在模式里直接提取:

if case let .b(dict) = theType {
    // 这里dict就是关联的NSDictionary实例
    print(dict)
}
// 或者写成:
if case TheType.b(let dict) = theType {
    // 使用dict
}

你之前写法的问题

你错误地在if case里使用了==,这不符合Swift模式匹配的语法。if case的核心是模式绑定,用=将枚举case模式和实例关联,而非比较相等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 01:44:52