Scala:如何找到至少两个以上的元素?

时间:2019-01-02 01:12:34

标签: scala math minimum

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

谢谢!

2 个答案:

答案 0 :(得分:8)

如果您有多个元素,则可以将调用链接到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)

答案 1 :(得分:3)

像列表一样添加集合中的所有数字,并找到一个最小的数字。

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