【发布时间】:2017-05-17 06:40:21
【问题描述】:
是否可以在 Scala 中为集合定义我自己的相等或排序概念?在这种情况下,覆盖 equals 和 hashCode 不起作用,因为我希望拥有多个实例。
我的想法大致如下:(忽略这段代码的无效性)
implicit val customEq1(x: Int, y: Int) = x % 8 == y % 8
val customEq2(x: Int, y: Int) = x.toString == y.toString.take(2)
val union = Set(1,15,3).union(Set(3,7,8)) // => Set(1,3,8)
我认为相等/排序是一个类型类,但函数如 e.g. diff、union、intersect 似乎没有提供任何此类功能。
【问题讨论】:
-
“重复”问题的答案建议覆盖
equals,这不是我想要的,正如我的问题中所解释的那样。
标签: scala collections equality implicit