0
및 Double
의 Seq
을 허용 할 수있는 메서드를 구현하려고합니다. 이것은 Numeric
을 사용하여 수행 할 수 있다고 들었지만, 스 플랫 책에서는 @specialized
이라는 주석에 대해 읽었습니다. 스칼라에서 @specialized의 올바른 사용
T
가
String
생각하는 것 때문에
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
}
}
그러나 스칼라가 +
동작을 인식하지 못하는 경우 다음과 같은 방법을 구현했습니다.
참고 : 방정식을 가독성을 위해 단순화했습니다. 더 이상 중앙값 계산을 나타내지 않습니다.