【发布时间】:2012-06-06 21:02:20
【问题描述】:
我正在做一些 Scala 体操,其中有 Seq[T],我试图在其中找到“最小”元素。这就是我现在所做的:
val leastOrNone = seq.reduceOption { (best, current) =>
if (current.something < best.something) current
else best
}
它运行良好,但我不太满意 - 这么简单的东西有点长,I don't care much for "if"s。使用minBy 会更优雅:
val least = seq.minBy(_.something)
... 但是当序列为空时,min 和 minBy 会抛出异常。有没有一种惯用的、更优雅的方式来查找可能为空的列表中的最小元素为Option?
【问题讨论】: