【发布时间】:2019-05-28 17:44:44
【问题描述】:
由于 Math.min() 函数只允许使用 2 个元素,我想知道是否还有另一个函数可以计算超过 2 个元素的最小值。
提前致谢!
【问题讨论】:
-
.min出现在几乎任何类似于元素序列或某种集合的东西上。
由于 Math.min() 函数只允许使用 2 个元素,我想知道是否还有另一个函数可以计算超过 2 个元素的最小值。
提前致谢!
【问题讨论】:
.min 出现在几乎任何类似于元素序列或某种集合的东西上。
如果您有多个元素,您可以将调用链接到 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
【讨论】: