Я пытаюсь реализовать метод, который может принимать Seq
из Int
и Double
. Я слышал, что это можно сделать, используя Numeric
, но я прочитал об аннотации под названием @specialized
в книге Scala.правильное использование @specialized в Scala
Так что я попытался реализации метода следующим
def getMedian[@specialized(Int, Double) T](s:Seq[T]):T = {
s.sorted match {
case y:Seq[T] if (y.length % 2 == 0) => y(0) + y(1)/2
}
}
Однако Scala не признает +
операцию, так как тип намекая, кажется, думает T
является String
.
Примечание: Я упростил уравнение для удобочитаемости. Он больше не представляет собой медианный расчет.