从案例类中提取Option而忽略None

时间:2014-02-24 21:05:11

标签: scala

我有一系列像这样的案例类

case class Foo(..., bar: Option[A], ...)

我希望将其转换为Seq[(Foo, A)],我从A中提取bar,而Seq只包含Foo的{​​} {1}}不是bar。这是我现在的实现,但它调用None的事实让我觉得有更好的方法来做到这一点:

get

1 个答案:

答案 0 :(得分:8)

val seqOfTuples = seqOfFoos.collect {
  case f @ Foo(_, Some(a), _) => (f, a)
}

您可能需要调整下划线的数量,具体取决于Foo有多少其他参数。