You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Swift中如何创建与指定枚举实例同类型的新实例

解决Swift枚举同类型实例创建问题

嘿,这事儿其实挺简单的,有几种方式能满足你的需求,我给你一一说明:

最直接的显式创建

既然你明确要创建Example.one(string: "World")这个实例,直接写出来就行:

let y = Example.one(string: "World")

这样创建的yx属于同一个枚举类型Example,并且满足y == .one("World")的要求。

利用类型推断简化写法

如果你不想重复写Example这个枚举名,可以通过类型标注让Swift自动推断:

let y: Example = .one(string: "World")

因为已经指定了y的类型是Example,所以可以直接用.来引用枚举case,代码更简洁。

动态匹配现有实例的case(可选)

如果你的场景是不确定x的具体case,但想创建和x同case的实例(比如这里x.one就创建.one;如果x.two就创建.two),可以用switch来实现:

let y: Example
switch x {
case .one:
    y = .one(string: "World")
case .two:
    y = .two(string: "World") // 根据需求调整参数
}

这种方式更灵活,适合需要根据已有实例动态生成同case新实例的场景。

另外要注意:要让枚举支持==比较,你需要让它遵循Equatable协议,修改枚举定义如下即可:

enum Example: Equatable {
    case one(string: String)
    case two(string: String)
}

这样才能正确判断y == .one("World")是否成立哦~

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

火山引擎 最新活动