由于Math.min()函数仅允许使用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