2011/4/22 lkuczera <kuk
...@gmail.com>:
> Witajcie.
> Mam taki kod:
> val r = "\\d\\d".r
> val arr = "alkdjf 34 adlkjf 34 aldkjf".split
> Teraz to co chcę zrobić to przeiterować tablicę zwracając None jeżeli
> wyrażenie nie będzie pasowało do chociażby jednego elementu i przerwać
> iterację lub zwrócić wydłubane wartości. Nie wiem jak to zrobić
> funkcyjnie w jednym przbiegu iteracji.
> Moje rozwiązanie to albo dwie iteracje albo poprzez var'y.
arr.filter(r.findFirstIn(_) != None) match {
case a if a.length > 0 => Some(a)
case _ => None
}
Zwróci wszystkie 34-ki.
Podejrzewam, że tym wariantem byłeś zainteresowany. Jeżeli jednak
chciałeś tylko pierwszy wynik to skorzystaj po prostu z metody find.
Pozdrawiam,
Maciej
--
Maciej Biłas