【发布时间】:2016-03-19 03:35:12
【问题描述】:
Scala 标准库中的Numeric 没有maxValue 和minValue 函数是否有充分的理由。它似乎相当有用,甚至在某些情况下使用它也是必要的。
例如,可以像这样定义一个 scalacheck 生成器:
def arbNumeric[T:Choose](implicit num: Numeric[T): Arbitrary[T] = {
Arbitrary(Gen.chooseNum(num.MinValue, num.MaxValue))
}
而不必为每个 Int、Long 等写出相同的东西:
val arbInt: Arbitrary[Int] = {
Arbitrary(Gen.chooseNum(Int.MinValue, Int.MaxValue))
}
def arbLong: Arbitrary[Long] = {
Arbitrary(Gen.chooseNum(Long.MinValue, Long.MaxValue))
}
def arbShort: Arbitrary[Short] = {
Arbitrary(Gen.chooseNum(Short.MinValue, Short.MaxValue))
}
...
【问题讨论】:
-
Numeric[BigDecimal]的MaxValue会是什么? -
BigDecimal 与这个想法有何矛盾?
-
数字的每个“类型”都有不同的限制...
标签: scala max standard-library