scala - 更优雅的写法 if(list.nonEmpty) Some(list.max) else None?

标签 scala functional-programming max scala-option

List.max根据某些顺序返回列表的“最大”元素...但如果列表为空,您将得到 java.lang.UnsupportedOperationException: empty.max异常(exception)。我真的不喜欢用 if 语句或匹配或其他东西乱扔代码。我想要类似 headOption 的东西为 max ,但我没有看到这样的方法。获得等效于 list.maxOption 的最优雅方法是什么? ?

最佳答案

您可以将 Try 转换为 Option:

Try(empty.max).toOption

您还可以使用 reduceOption(如 scala - Min/max with Option[T] for possibly empty Seq? 中所示):
l.reduceOption(_ max _)

关于scala - 更优雅的写法 if(list.nonEmpty) Some(list.max) else None?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20482153/

相关文章:

java - 查找最大元素的索引

python - 如何获取每个矩阵行的最大值并将它们保存在另一个列表中?

scala - akka actor适用于搜索等在线服务系统吗?

scala - 如何使用 --files 选项执行上传到工作节点的应用程序?

c# - LeanFT C# 自动化;单击 wpf 按钮控件抛出异常

javascript - 使用 Ramda 映射和过滤对象

scala - 如何选择以公共(public)标签开头的所有列

scala - 如何使用 Scala 解析器组合器处理不区分大小写的关键字

clojure - 一旦达到所需的累积量,如何停止reduce函数处理列表?

c++ - int min 的定点实现