无法创建枚举的变量

Unable to create a variable of an Enumeration

我创建了一个 Enumeration 如下:

scala> object J extends Enumeration {
     | type J = Value
     | val Fail, Success = Value
     | }
defined object J

问题 1 - 我试图创建一个其类型的变量,但出现以下错误。为什么?

scala> val j:J
<console>:11: error: not found: type J
       val j:J
             ^
<console>:11: error: only classes can have declared but undefined members
       val j:J
           ^

问题 2 - 我可以按如下方式创建一个变量。我想 Fail 的值实际上是 0。我如何打印 0?

scala> val j = J.Fail
j: J.Value = Fail

scala> println(j)
Fail

您使用错误的语法来分配类型变量,您应该这样做:

val j = J
j: J.type = J

关于值,Fail和Sucess除了自己的名字外没有其他值,如果你想给它们赋值你应该使用这样的语法:

object J extends Enumeration {
     type J = Value
     val Fail = Value(0)
     val Success = Value(1)
}

然后您可以使用它的 id 属性

访问它
scala> j.id
res: Int = 0

scala> j
res: J.Value = Fail