【发布时间】:2021-08-10 18:35:59
【问题描述】:
我想修改这里给出的代码:Find min and max elements of array
def minMax(a: Array[Int]) : (Int, Int) = {
if (a.isEmpty) throw new java.lang.UnsupportedOperationException("array is empty")
a.foldLeft((a(0), a(0)))
{ case ((min, max), e) => (math.min(min, e), math.max(max, e))}
}
也可以与 Long、Float 和 Double 一起使用(因为这些是 scala.math.min/max 接受的类型。我试过了:
def getMinAndMax[@specialized(Int,Long,Float,Double) T](x: Seq[T]) : (T, T) = {
if (x.isEmpty) throw new java.lang.UnsupportedOperationException("seq is empty")
x.foldLeft((x.head, x.head))
{ case ((min, max), e) => (math.min(min, e), math.max(max, e))}
}
但这也不能编译。有什么建议吗?
【问题讨论】: