ループとパターンマッチに基づいて異なるケースクラスオブジェクトのリストを作成しています。 デフォルトのケース(本質的にリストをフィルタリングし、1つのステップでタイプにマッピングする)に当たるアイテムを除外(スキップ)したい。パターンマッチの場合にのみ収穫
私はおそらくすべての可能性を見るためにScalaにとって新しすぎです。私の試み:
val events = for (ev <- data) yield {
ev.sport match {
case "FOOTBALL" => new FootballEvent(ev)
case "SOCCER" => new SoccerEvent(ev)
case _ => None
}
}
私はその後、リストをフィルタリングすることもできますが、私はこれを行うためのいくつかの空想のScalaの方法があります容疑者:)
あなたは、これが最良の行われるべきかのいずれかのアイデアを持っているなら、私に知らせてください。 !
3つ以上ではなく、2つのケースがある場合、これは1つの 'for ... yield'で行うことができます - ここでは例を示します:' for {Some(x)< - Some(None:Option [String])} yield "ここには入るべきではない" ' –