Estoy intentando buscar en una colección de scala un elemento de una lista que coincida con algún predicado. No necesariamente necesito el valor de retorno, solo estoy probando si la lista lo contiene.Encontrar un elemento que coincida con el predicado en Scala
En Java, podría hacer algo como:
for (Object item : collection) {
if (condition1(item) && condition2(item)) {
return true;
}
}
return false;
En maravilloso, puedo hacer algo como:
return collection.find { condition1(it) && condition2(it) } != null
Cuál es la forma idiomática de hacer esto en Scala? Por supuesto, pude convertir el estilo de bucle de Java a Scala, pero creo que hay una forma más funcional de hacerlo.
yo no me preocuparía demasiado por idiomaticidad o functionalness: las colecciones de la biblioteca Scala tienen el '' método exists' y find' (diferencia es que 'find' devuelve el elemento) que devuelven tan pronto como el elemento se encuentra. Ambos se implementan con un bucle 'var' y' while', que se ve muy similar a la implementación de java que tiene (excepto tomando el predicado como parámetro). – herman