Рекурсивный case-класс: java.lang.StackOverflowError на равных

0
задан Alban Dericbourg 16 January 2019 в 16:33
поделиться

1 ответ

Реализация по умолчанию класса case equals наивно рекурсивна. Вы можете реализовать свою собственную хвостовую рекурсивную версию в List. Вот начало:

sealed trait List[+T] {
  override def equals(o: Object): boolean = o match {
    case ls: List[_] => equalsRec(ls)
    case _ => false
  }

  @tailrec
  def equalsRec(ls: List[_]): boolean = ???
0
ответ дан Brian McCutchon 16 January 2019 в 16:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: