具有多种类型的Swift枚举
我正试图找出如何将我的Java枚举复制到Swift中,我不知道 这是正确的方法 我正在尝试用Swift编写的Java枚举:具有多种类型的Swift枚举,swift,Swift,我正试图找出如何将我的Java枚举复制到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;
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
}
}
}
我的问题是:
谢谢您肯定可以拥有一个带有不同类型关联值的
枚举
,我认为它可以满足您的需求。以下是我如何实现您的示例:
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)")
}
是的,我已经试过了,但是它仍然让我找到了一个常量,我正试图阻止它。最后我得出结论,我想要的只是不同类型的常量。因此,我创建了不同类型的结构,将let作为静态的。这是因为类还不支持let-as类(静态)。对,听起来根本不需要枚举。无论是一个直接的全局变量还是一个具有静态属性的结构都可以。是我还是有人觉得Swift不必要地复杂?