无法创建枚举的变量

时间:2018-04-09 06:38:20

标签: scala 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

1 个答案:

答案 0 :(得分:0)

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

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