首页 > 解决方案 > 返回第一个的函数 Non-None Optional

问题描述

我正在尝试编写一个接受 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)
  }

标签: scala

解决方案


使用orElse功能:

def firstNotNone[T](x: Option[T], y: Option[T], z: Option[T]): Option[T] = 
    x.orElse(y).orElse(z)

推荐阅读