Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 为集合隐式定义相等/排序_Scala_Collections_Equality_Implicit - Fatal编程技术网

Scala 为集合隐式定义相等/排序

Scala 为集合隐式定义相等/排序,scala,collections,equality,implicit,Scala,Collections,Equality,Implicit,可以为Scala中的集合定义我自己的相等或排序概念吗?重写等于和哈希代码在这种情况下不起作用,因为我希望有多个实例 以下是我的大致想法:(忽略此代码的无效性) 我认为相等/排序是一个类型类,但是像diff,union,intersect这样的函数似乎没有提供任何这样的功能。如果您有多个不同的实现进行比较,您可以为每个实现创建一个具有适当覆盖的类,然后使用隐式转换强制集合的类型,如下所示: class MyCompInt { overrides... } val union = Set[MyCom

可以为Scala中的集合定义我自己的相等或排序概念吗?重写
等于
哈希代码
在这种情况下不起作用,因为我希望有多个实例

以下是我的大致想法:(忽略此代码的无效性)


我认为相等/排序是一个类型类,但是像
diff
union
intersect
这样的函数似乎没有提供任何这样的功能。

如果您有多个不同的实现进行比较,您可以为每个实现创建一个具有适当覆盖的类,然后使用隐式转换强制集合的类型,如下所示:

class MyCompInt { overrides... }
val union = Set[MyCompInt](1, 15, 3).union(...)
“重复”问题的答案可能重复,建议覆盖
equals
,正如我在问题中所解释的,这不是我想要的。
class MyCompInt { overrides... }
val union = Set[MyCompInt](1, 15, 3).union(...)