gpt4 book ai didi

swift - 像在 Java 中一样在 Swift 2 中编写一个简单的枚举

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

在 Java 中,我可以创建一个采用整数的枚举,如下所示:

public
enum MyEnum {
FOO(1), BAR(4), BAZ(8);

private
int value;

MyEnum(int value) {
this.value = value;
}

public
int getValue() {
return value;
}
}

如何在 Swift(2.0 版)中执行相同的操作?我的猜测是:

public
enum MyEnum {
case FOO(1)
case BAR(4)
case BAZ(8)

public
let value: Int

init(value: Int) {
self.value = value
}
}

但尝试编译它会出现以下错误:

Expected type
Expected ',' separator
Expected type
Expected ',' separator
Expected type
Expected ',' separator
Enums may not contain stored properties

(前两个在“case FOO(1)”行,第二个在“case BAR(4)”,第三个在“case BAZ(8)”,最后一个错误在“let”行值:整数")

我如何修复此 Swift 代码以创建一个与 Java 中的枚举等效的枚举?

非常感谢

最佳答案

 public
enum MyEnum: Int {
case FOO = 1
case BAR = 4
case BAZ = 8
}

var foo = MyEnum(rawValue: 4)
var rawValue = foo?.rawValue

在 Swift 中,不需要基础值的构造函数/getter。这些包含在枚举类型中(如 rawValue,这是您的枚举继承的类型)

此外,请注意接受 rawValue 的构造函数是可失败的(即返回一个可选值),因为可以传入一个未映射到的 rawValue一个 MyEnum

关于swift - 像在 Java 中一样在 Swift 2 中编写一个简单的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32869065/

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