case class vs case object vs object vs class vs trait vs abstract sealed isomorphism

时间:2015-09-06 12:45:47

标签: scala

我正在尝试编写与此类似的代码:https://github.com/ornicar/scalachess/blob/master/src/main/scala/Color.scala

我有这个结构:

sealed trait Color {
  val red = this == Color.Red
  val black = this == Color.Black
  val green = this == Color.Green
  val blue = this == Color.Blue
}

object Color {
  case object Red extends Color
  case object Black extends Color
  case object Green extends Color
  case object Blue extends Color
}

在原始资源中,Color类型可以像这样使用:

List(Red, Green, Blue)

但在我的情况下,我必须像这样使用它们:

List(Color.Red, Color.Green, Color.Blue)

因为如果我使用前者,它会给我这个错误:

not found: value: Red

如何在不使用Color.前缀的情况下使用颜色类型?

0 个答案:

没有答案