Scala 如果所有组件都是None,则如何返回None,否则

Scala 如果所有组件都是None,则如何返回None,否则,scala,Scala,我有一个案例类,如: case class Part1(id: Int) case class Part2(id: Int) case class Part3(id: Int) 上述所有零件均包含在以下零件类别中: case class Parts(part1: Option[Part1], part2: Option[Part2], part3: Option[Part3]) 现在,在我的代码中,我有: case (maybePart1, maybePart2, maybePart3) =

我有一个案例类,如:

case class Part1(id: Int)
case class Part2(id: Int)
case class Part3(id: Int)
上述所有零件均包含在以下零件类别中:

case class Parts(part1: Option[Part1], part2: Option[Part2], part3: Option[Part3])
现在,在我的代码中,我有:

case (maybePart1, maybePart2, maybePart3) => 
  Parts(maybePart1, maybePart2, maybePart3)
但我真正想做的是,如果它们都是None,则返回None,否则返回我在上面所做的


如何执行此操作?

如果所有的case语句都是
None
,请为其添加另一个case语句:

case (None, None, None) => None
case (maybePart1, maybePart2, maybePart3) => 
  Some(Parts(maybePart1, maybePart2, maybePart3))

如果案例都是
None
,只需为案例添加另一个案例语句即可:

case (None, None, None) => None
case (maybePart1, maybePart2, maybePart3) => 
  Some(Parts(maybePart1, maybePart2, maybePart3))