scala - 返回第一个的函数 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)
}
解决方案
使用orElse
功能:
def firstNotNone[T](x: Option[T], y: Option[T], z: Option[T]): Option[T] =
x.orElse(y).orElse(z)
推荐阅读
- javascript - 在 ReactJS 中将 props 从一个组件传递到另一个组件返回 undefined
- javascript - 将数据表导出到 excel 时提示用户输入文件名
- python - Numba 中的负动态索引
- solr - 如何提取
- javascript - Lightwidget 在我的 HTTPS 网站中不起作用
- php - PHP - 使用 ksort() 对关联数组进行排序
- angular - 在 Angular 6 中找不到带有 Angular Datatable 的模块 DataTablesModule
- android - 如何远程调试安装在远方用户手机上的 android 应用程序?
- json - 将字典数组编码为 JSON 时面临的问题
- c - 信号处理程序中的 Shellcode