scala - 斯卡拉:嵌套getOrElse
问题描述
我想创建一个方法,该方法将选项数组和默认值作为参数,并返回第一个非空选项,否则返回默认值:
def customGetOrElse[T](options : Array[Option[T]], defaultValue : T) : T = {
// Example if options contain 2 elements
options(0).getOrElse(options(1).getOrElse(defaultValue))
// If options contain 3 elements
options(0).getOrElse(options(1).getOrElse(options(2).getOrElse(defaultValue)))
}
但我正在努力使这种方法适用于任何大小的数组。有任何想法吗 ?
谢谢!
解决方案
def customGetOrElse[T](options : Array[Option[T]], defaultValue : T) : T = {
options.find(_.isDefined).flatten.getOrElse(defaultValue)
}
推荐阅读
- firebase - 如何解决 Flutter 上的 AutoValidateMode 问题?
- python - python字典到numpy数组切片
- pine-script - 如何将两种多种交易策略组合成单一策略?
- java - 我在必要的环境中设置了 JAVA_HOME,但是 VScode 插件无法识别它
- r - R Markdown 不呈现一些 HTML?
- unity3d - 无法转换方法 grup “tostring”
- javascript - `undefined!` 在打字稿中是什么意思?
- javascript - 如何将数据从顶级路由传递到 React 中的内部路由?
- wordpress - 无法在移动设备上使用 Revolution Slider 取消 YouTube 视频静音
- javascript - 在 JavaScript 中对 Json 列表进行排序