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/