如何在Scala中定义具有特定数值的枚举,并能够从类型中获取值列表?
如果我使用Enumeration
类型定义枚举,如下所示:
object MyEnum extends Enumeration {
type MyEnum = Value
val A: Byte = -10
val B: Byte = 0
val C: Byte = 10
}
并尝试获取如下值:
val byteValues = MyEnum.values.toList.map(_.id.toByte)
然后我得到一个空序列。
答案 0 :(得分:1)
定义枚举的正确方法是:
object MyEnum extends Enumeration {
type MyEnum = Value
val A = Value(-10)
val B = Value(0)
val C = Value(10)
}
然后获取值即可。
答案 1 :(得分:1)
您可以为Value
方法提供参数,以将枚举设置为特定值。随后不带参数调用Value
会生成序列中的下一个整数
object MyEnum extends Enumeration {
val A = Value(-1)
val B, C = Value
}
很明显如何使用我的答案来解决更新的问题,但这是代码,以防万一
object MyEnum extends Enumeration {
val A = Value(-10)
val B = Value(0)
val C = Value(10)
}