在Scala枚举中,如何解释';val红色、绿色、蓝色=值';?

在Scala枚举中,如何解释';val红色、绿色、蓝色=值';?,scala,enumeration,Scala,Enumeration,描述枚举的定义方式如下所示: object Color extends Enumeration{ type Color = Value val RED, GREEN, BLUE = Value } 我不明白的是最后一行的结构。它似乎创建了一组值,并赋予它们相同的值?但是值是一种类型,所以它是如何工作的。是的,这很不幸。如果您查阅,您将看到值既是一种类型(抽象类在第184行),也是一种重载方法(第128-154行) 调用Value方法(不带参数)实际上变成了对新Val(i,name)的调

描述枚举的定义方式如下所示:

object Color extends Enumeration{
  type Color = Value
  val RED, GREEN, BLUE = Value
}

我不明白的是最后一行的结构。它似乎创建了一组值,并赋予它们相同的值?但是值是一种类型,所以它是如何工作的。

是的,这很不幸。如果您查阅,您将看到
既是一种类型(
抽象类
在第184行),也是一种重载方法(第128-154行)

调用
Value
方法(不带参数)实际上变成了对
新Val(i,name)
的调用,因此您的每种颜色都被分配了一个“新”值,即不同的值

Scala枚举经历了一些变化,在即将发布的版本中可能会发生变化