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开始是非法的.使用对象而不是大小写对象来定义红色,绿色和蓝色.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |