我有一系列像这样的案例类
case class Foo(..., bar: Option[A], ...)
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个Seq[(Foo, A)],在那里我提取Afrom bar和Seq唯一包含Foo的地方bar不是None.这是我现在的实现,但它调用的事实get使我认为有更好的方法来做到这一点:
val seqOfTuples = seqOfFoos.collect {
case foo if foo.bar.isDefined => (foo, foo.bar.get)
}
Run Code Online (Sandbox Code Playgroud)
val seqOfTuples = seqOfFoos.collect {
case f @ Foo(_, Some(a), _) => (f, a)
}
Run Code Online (Sandbox Code Playgroud)
您可能需要调整下划线的数量,具体取决于Foo有多少其他参数.