Sto provando a cercare una scala di una voce in un elenco che corrisponde a un predicato. Non ho necessariamente bisogno del valore restituito, solo testando se la lista lo contiene.Ricerca di un elemento che corrisponde al predicato in Scala
In Java, mi potrebbe fare qualcosa di simile:
for (Object item : collection) {
if (condition1(item) && condition2(item)) {
return true;
}
}
return false;
in Groovy, posso fare qualcosa di simile:
return collection.find { condition1(it) && condition2(it) } != null
Qual è il modo idiomatico per fare questo a Scala? Naturalmente potrei convertire lo stile del ciclo Java in Scala, ma mi sembra che ci sia un modo più funzionale per farlo.
io non mi preoccuperei troppo di idiomaticità o functionalness: le collezioni nella libreria Scala hanno la '' exists' e metodo find' (differenza è che 'find' restituisce l'elemento), che di ritorno, presto quando l'elemento viene trovato. Entrambe sono implementate con un ciclo 'var' e un' while', molto simile a quello che si ha con l'implementazione java (eccetto che si prende il predicato come parametro). – herman