У меня есть метод, который является рекурсивным. Есть ли способ в scala вырваться на основе размера буфера (как показано ниже)? Случай для разрыва, когда elementList.size> 5, например?Есть ли способ вырваться из @tailrec в Scala?
val elementList = ListBuffer.empty[Book]
@tailrec
def getBooks(elements: List[Element]) {
elements match {
case Nil => info("Reached end of elements list.")
case element :: rest if element.getElementType == ElementType.BOOK => {
elementList.append(element.getBook)
getLooks(rest)
}
case _ => getBooks(elements.tail)
}
}
Рассмотрите возможность использования стандартных функций, таких как elements.filter (_. GetElementType == ElementType.BOOK) .take (5) – vitalii
Вы можете использовать ядерную опцию и написать '' return''. – janm399