如何在Scala中定义具有特定数值的枚举

时间:2019-03-19 10:34:10

标签: scala enums

如何在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)

然后我得到一个空序列。

2 个答案:

答案 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)
}