gpt4 book ai didi

具有多种类型的 Swift 枚举

转载 作者:搜寻专家 更新时间:2023-11-01 06:10:30 26 4
gpt4 key购买 nike

我正在尝试弄清楚如何将我的 Java Enum 复制到 Swift 中,但我不知道是否这是正确的方法。

我尝试用 Swift 编写的 Java 枚举:

public enum EnumDB {

DATABASE_NAME("DataBase"),
DATABASE_VERSION(1);

private String name;
private int value;

private EnumDB(String name) {
this.name = name;
}

private EnumDB(int value) {
this.value = value;
}

public String getName() {
return name;
}

public int getValue() {
return value;
}

}

我的 Swift 代码:

enum EnumDB {

case Name,Version

func getName() -> String{
switch self{
case .Name: return "DataBase"
}
}

func getNumber() -> Int{
switch self{
case .Version: return 1
default: return 0
}
}
}

我的问题是:

  1. 这是创建具有多个值类型的枚举的正确方法吗,每个枚举都包含不同的类型?
  2. 不幸的是,这样我就可以在每个枚举上调用方法 getName() 和 getNumber(),这很糟糕,因为我希望这些方法根据枚举类型呈现。枚举关联值和原始值没有帮助总而言之,我正在寻找的是编写一个他的值可以包含不同类型的枚举。

谢谢

最佳答案

您绝对可以拥有一个具有不同类型的关联值的 enum,我认为这可以为您提供所需的内容。这就是我如何实现您的示例:

enum EnumDB {
case Name(String)
case Version(Int)
}

let namedDB = EnumDB.Name("databaseName")

switch namedDB {
case .Name(let name):
println("Database name is \(name)")
case .Version(let versionNumber):
println("Database version is \(versionNumber)")
}

关于具有多种类型的 Swift 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25354934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com