Scala Overriding равно для определенного типа

У меня есть метод, который работает на двух последовательностях. Я использую функцию groupBy, которая, в свою очередь, работает с методом equals, чтобы фактически сгруппировать элементы, которые я прошу, сгруппировать. Вот метод, который у меня есть:

  def mergeFunc[T][B](seq1: Seq[(T, B)], seq2: Seq[(T, B)]) = {
    val result = seq1.groupBy(_._1).mapValues(_.foldLeft(0)((total, current) => total + current._2))
    ......
    ......
  }

Теперь в функции выше, как я могу сделать так, чтобы groupBy также работал для моих классов case? Например, у меня есть класс case, который является композицией других типов (который может быть или не быть классом case), и я не хочу писать и писать реализацию equals для всех этих типов. Как я мог неявно или явно указать, что для классов case, которые я передаю этому методу, например:

 mergeFunc[TypeA][Long](Seq(TypeA, Long), Seq(TypeA, Long))

Как я могу гарантировать, что groupBy работает с методом equals, который я хотел бы передать этому методу в качестве параметра?

0 ответов

Другие вопросы по тегам