返回第一个的函数Non-None可选

Hit*_*esh 1 scala

我正在尝试编写一个接受3个可选值并返回第一个非无可选值的函数。我的代码可以正常工作,但是看起来有点笨拙,想知道是否有更好的方法可以做到这一点。下面是我的代码

def firstNotNone[T](x: Option[T], y: Option[T], z: Option[T]): Option[T] = x.getOrElse(y.getOrElse(z.getOrElse(None))) match {
    case None =>None
    case value :T => Option(value)
  }
Run Code Online (Sandbox Code Playgroud)

mar*_*ran 6

使用orElse功能:

def firstNotNone[T](x: Option[T], y: Option[T], z: Option[T]): Option[T] = 
    x.orElse(y).orElse(z)
Run Code Online (Sandbox Code Playgroud)