如何为枚举值分配重复的ID?

时间:2013-05-22 09:20:06

标签: scala enumeration

我正在将以下C ++代码转换为Scala:

enum Value{ a = 0 , b = 0 , c = 12 , d = 13}

我已按以下方式实施:

object Value extends Enumeration {
 val a = Value(0) 
 val b = Value(0) 
 val c = Value(12) 
 val d = Value(13) 
}

但是在我调用Value(0).id报告

时显示错误
  

java.lang.AssertionError:断言失败:重复ID:0

如何指定重复值?

2 个答案:

答案 0 :(得分:2)

你可以这样做:

object Value extends Enumeration {
  val a = Value(0)
  val b = a
  val c = Value(12)
  val d = Value(13)
}

答案 1 :(得分:0)

问题在于,如果您愿意,可以执行以下两个值0的定义:

object EnumValue extends Enumeration {
   type EnumValue = Value
   val a = Value(0)
   val b = a
   val c = Value(12)
   val d = Value(13)
}

 println(EnumValue.a.toString)