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

coo*_*eze 0 scala

我有一个案例类:

case class Part1(id: Int)
case class Part2(id: Int)
case class Part3(id: Int)
Run Code Online (Sandbox Code Playgroud)

以上都包含在下面的Parts类中:

case class Parts(part1: Option[Part1], part2: Option[Part2], part3: Option[Part3])
Run Code Online (Sandbox Code Playgroud)

现在我的代码中有:

case (maybePart1, maybePart2, maybePart3) => 
  Parts(maybePart1, maybePart2, maybePart3)
Run Code Online (Sandbox Code Playgroud)

但是我真正想做的是返回None如果所有这些都是None,否则返回我正在做的事情.

我怎样才能做到这一点?

Alv*_*sco 6

如果是全部,只需为案例添加另一个案例陈述None:

case (None, None, None) => None
case (maybePart1, maybePart2, maybePart3) => 
  Some(Parts(maybePart1, maybePart2, maybePart3))
Run Code Online (Sandbox Code Playgroud)