如何在Scala中正确实现自定义数字类?

时间:2015-07-12 13:44:47

标签: scala class numbers

我目前正在尝试实施自己的UnsignedInt。我想正确地实现它,以便它适合整个Scala类型&类系统。但是,我对所有适合Number的类感到困惑。

我需要使用哪个班级:NumericIntegralScalaNumber?还是完全不同的东西?我自己的班级应该实现哪些类和/或特征?

1 个答案:

答案 0 :(得分:2)

简短的回答是:不要实现自己的,使用Spire一个:)否则,你应该实现Integral(包括Numeric)。请注意,您的类型不应扩展它;你需要伴侣对象中的隐含值,即

class UnsignedInt { ... }

object UnsignedInt {
  implicit val UIntIntegral: Integral[UnsignedInt] = ...
}

您还应该考虑将您的课程设为value class