加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala case类equals(==)未按预期工作

发布时间:2020-12-16 19:19:43 所属栏目:安全 来源:网络整理
导读:我必须在这里遗漏一些愚蠢的东西.我有这个: 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 exten
我必须在这里遗漏一些愚蠢的东西.我有这个:

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)

为什么不呢?

解决方法

从case类继承的Case类(或对象)是一种不好的做法,从Scala 2.9.1开始是非法的.使用对象而不是大小写对象来定义红色,绿色和蓝色.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读