【发布时间】:2011-08-23 19:59:33
【问题描述】:
我一定在这里遗漏了一些愚蠢的东西。我有这个:
case class Color(val rgb:Int) {
private val c = rgb - 0xff000000
val r = (c & 0xff0000) >> 16
val g = (c & 0x00ff00) >> 8
val b = (c & 0x0000ff)
}
case object Red extends Color(0xffff0000)
case object Green extends Color(0xff00ff00)
case object Blue extends Color(0xff0000ff)
然后我希望这会打印出 true:
val c = Color(0xff00ff00)
println(c == Green)
为什么不呢??
【问题讨论】:
-
另一个提示:
Color的参数中的val是多余的,因为Color是一个案例类。说一句就够了:case class Color(rgb: Int) -
是的,这是一个较晚的添加,因为我试图让它按预期工作;既然你提到它,我记得它是不需要的。
标签: scala equality case-class