Scala枚举出现错误。

8 浏览
0 Comments

Scala枚举出现错误。

我正在定义一个Scala枚举对象:

object LogType extends Enumeration{
    val value1, value2 = Value
}

但是出现了一个错误:

包scala中没有成员对象Enumeration。提示:类Enumeration存在,但它没有伴生对象。

可能的原因是什么?

0
0 Comments

Scala中的Enumeration给出错误的原因是没有定义类型。在上述代码中,定义了一个WeekDay对象,并通过继承Enumeration类来创建一个枚举。然后使用type关键字定义了一个WeekDay类型,并为每个值分配了一个Value。接下来导入了WeekDay对象,并定义了一个isWorkingDay函数来检查是否是工作日。最后通过filter函数过滤出工作日的值,并使用foreach函数将结果打印出来。

然而,这段代码给出了一个错误,错误的原因是没有定义类型。解决这个错误的方法是不需要使用type关键字进行类型别名定义,直接使用Enumeration类中的Value类型即可。

以下是修改后的代码:

object Main extends App {
   object WeekDay extends Enumeration {
       val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
   }
   import WeekDay._
   def isWorkingDay(d: Value) = !(d == Sat || d == Sun)
   WeekDay.values filter isWorkingDay foreach println
}

修改后的代码中,去掉了type关键字,并将isWorkingDay函数的参数类型修改为Value类型。这样就解决了Scala Enumeration给出错误的问题。

0