У меня есть неизменяемый набор классов, Set [MyClass], и я хочу использовать методы Set intersect и diff, но я хочу, чтобы они проверяли равенство, используя мой собственный метод equals, а не тест на равенство по умолчанию
Я попытался переопределить оператор ==, но он не используется.
Спасибо заранее.
Edit:
Метод пересечения представляет собой конкретный элемент значения GenSetLike
spec: http://www.scala-lang.org/api/current/scala/collection/GenSetLike.html src: https://lampsvn.epfl.ch/trac/scala/browser/scala/tags/R_2_9_1_final/src//library/scala/collection/GenSetLike.scala#L1
def intersect(that: GenSet[A]): Repr = this filter that
поэтому пересечение выполняется с использованием метода фильтра.
Еще одно Edit:
Фильтропределяется в TraversableLike
spec: http://www.scala-lang.org/api/current/scala/collection/TraversableLike.html
def filter(p: A => Boolean): Repr = {
val b = newBuilder
for (x <- this)
if (p(x)) b += x
b.result
}
Для меня непонятно, что он использует при вызове без предиката, p. Это не неявный параметр.