On Jul 20, 12:49 pm, Gustavo Nalle Fernandes <
gustavona...@gmail.com>
wrote:
> Potresti filtrare la lista con una funzione e poi ottenere il primo
> elemento:
>
> scala> val numbers = List(1,2,3,4,5)
> numbers: List[Int] = List(1, 2, 3, 4, 5)
>
> scala> val firstPair = list.filter(x => x % 2 == 0).head
> firstPair: Int = 2
>
> Ciao,
> Gustavo
>
On Jul 20, 12:49 pm, Gustavo Nalle Fernandes <
gustavona...@gmail.com>
wrote:
> Potresti filtrare la lista con una funzione e poi ottenere il primo
> elemento:
>
> scala> val numbers = List(1,2,3,4,5)
> numbers: List[Int] = List(1, 2, 3, 4, 5)
>
> scala> val firstPair = list.filter(x => x % 2 == 0).head
> firstPair: Int = 2
>
> Ciao,
> Gustavo
>
Ok. Ma io cercavo un modo di evitare di scandire tutta la lista.
Qualcosa del genere (non so se funziona ma compila :-)
def takeFirst( condition:(A)=>Boolean ) : Option[A] =
{
val it = value.elements;
var found:Option[A] = None;
if ( it.hasNext ) {
do {
val el = it.next;
if ( condition(el) == true ) found = Some(el);
} while ( (found == null) && it.hasNext )
}
return found;
}
Ciao
----
FB