Scala:如何找到超过 2 个元素的最小值?

Scala: How to find the minimum of more than 2 elements?

由于Math.min()函数只允许使用2个元素,我想知道是否有另一个函数可以计算超过2个元素的最小值。

提前致谢!

如果您有多个元素,您可以链式调用 min 方法:

Math.min(x, Math.min(y, z))

由于 scala 通过隐式将 min 方法添加到数字中,因此您可以编写以下看起来更漂亮的代码:

x min y min z

如果您有一个值列表并想找到它们的最小值:

val someNumbers: List[Int] = ???
val minimum = someNumbers.min

请注意,如果列表为空,则会引发异常。从 scala 2.13.x 开始,将有一个 minOption 方法来优雅地处理这种情况。对于旧版本,您可以使用 reduceOption 方法作为解决方法:

someNumbers.reduceOption(_ min _)
someNumbers.reduceOption(Math.min)

像列表一样将集合中的所有数字相加,并找到其中的最小值。

scala> val list = List(2,3,7,1,9,4,5)
list: List[Int] = List(2, 3, 7, 1, 9, 4, 5)

scala> list.min
res0: Int = 1