2
Scala标准库中的Numeric
为什么没有maxValue
和minValue
函数有充分的理由。它似乎相当有用,甚至有必要在某些情况下使用它。为什么Scala标准库中的Numeric没有`maxValue`?
举例来说,一个可能是能够定义像这样的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'会是什么? – Marth
BigDecimal如何抵触这个想法? –
数字的每个“类型”具有不同的限制... – pedrorijo91