1

我正在将 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

如何分配重复值?

4

2 回答 2

2

你可以这样做:

object Value extends Enumeration {
  val a = Value(0)
  val b = a
  val c = Value(12)
  val d = Value(13)
}
于 2013-05-22T09:33:43.353 回答
0

问题是您有 2 个值 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) 
于 2013-05-22T09:38:06.117 回答