Buduję listę różnych obiektów klasy sprawy na podstawie pętli i dopasowania wzorca. Chcę wykluczyć (pominąć) elementy trafiające w domyślny przypadek (zasadniczo filtrując listę i odwzorowując typy w jednym kroku).Wydajność tylko w przypadku dopasowania wzorca
Jestem prawdopodobnie zbyt nowy dla Scali, aby zobaczyć wszystkie możliwości. Moja próba:
val events = for (ev <- data) yield {
ev.sport match {
case "FOOTBALL" => new FootballEvent(ev)
case "SOCCER" => new SoccerEvent(ev)
case _ => None
}
}
mogę filtrować listę później, ale podejrzewam, że istnieje jakiś fantazyjny Scala sposób to zrobić :)
Proszę dać mi znać, jeśli masz jakiś pomysł, jak to powinno być najlepiej zrobić !
Jeśli występują tylko dwa przypadki, zamiast trzech lub więcej, można to zrobić w jednym 'dla ... yield' - oto przykład:' dla {Some (x) <- Some (None: Option [String])} yield "should not get here" ' –