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

Fre*_*ter 4 math scala minimum

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

提前致谢!

Aki*_*Aki 8

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

Math.min(x, Math.min(y, z))
Run Code Online (Sandbox Code Playgroud)

由于scala min通过implicits 将一个方法添加到数字中,因此您可以编写以下内容,它看起来更加漂亮:

x min y min z
Run Code Online (Sandbox Code Playgroud)

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

val someNumbers: List[Int] = ???
val minimum = someNumbers.min
Run Code Online (Sandbox Code Playgroud)

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

someNumbers.reduceOption(_ min _)
someNumbers.reduceOption(Math.min)
Run Code Online (Sandbox Code Playgroud)