Scala odpowiednik liczby Java
Usiłuję skonstruować hierarchię typów dla typów domen numerycznych. na przykład zaYear
jestInt
(który jestNumber
), aPercentage
jestDouble
, który jestNumber
itd. Potrzebuję hierarchii, abym mógł zadzwonićtoInt
lubtoDouble
na wartościach.
Jednak hierarchia typów Scala dla prymitywnych typów numerycznych nie ma wspólnego przodka, z wyjątkiemAnyVal
. To nie zawierato{Int, Double}
funkcje, których potrzebuję.
Najbliższy typ, jaki mogłem znaleźć, toNumeric[T]
, który wydaje się istnieć przede wszystkim dla niektórych sztuczek kompilatora.
W Javie wszystkie liczby pochodzące zNumber
(w tym dowolne precyzyjne).Jak zdefiniować interfejs przeznaczony dla typów liczbowych obiektów w Scali?
Obecnie hakuję go, wpisując kaczkę:
Any {
def toInt: Int
def toDouble: Double
}
która jest nie tylko długa, ale powoduje koszty odbicia w czasie pracy. Czy jest coś lepszego?