gpt4 book ai didi

kotlin - 如何在 Kotlin 中定义非序数枚举?

转载 作者:IT老高 更新时间:2023-10-28 13:27:31 26 4
gpt4 key购买 nike

我想定义一个值不是序数的枚举,例如:

enum class States(value: Int) {
STATE_A(4),
STATE_B(5),
STATE_C(7),
STATE_D(12)
}

如何获取每件商品的值(value)?例如 States.STATE_C 应该返回 7

最佳答案

您应该将 value 定义为属性 (val) 而不是构造函数参数。之后就可以访问了:

enum class States(val value: Int) {
STATE_A(1),
STATE_B(2),
STATE_C(3),
STATE_D(4)
}
...
println(States.STATE_C.value) // prints 3

还可以考虑使用 ordinal,这可能适合您的情况:

enum class States {
STATE_A,
STATE_B,
STATE_C,
STATE_D
}
...
println(States.STATE_C.ordinal + 1) // prints 3

如果您采用这种方法,请小心 - States 顺序的任何更改都可能破坏您的代码。

关于kotlin - 如何在 Kotlin 中定义非序数枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50266433/

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