这是很容易创建:为什么Scala的BigDecimal没有ZERO?
object zero extends BigDecimal(java.math.BigDecimal.ZERO)
我只是想知道这是否是一个疏忽,或者如果有一个明智的决定,不加这个,如果是这样,有没有理由我应避免上面的代码。也许与MathContext
有关?
这是很容易创建:为什么Scala的BigDecimal没有ZERO?
object zero extends BigDecimal(java.math.BigDecimal.ZERO)
我只是想知道这是否是一个疏忽,或者如果有一个明智的决定,不加这个,如果是这样,有没有理由我应避免上面的代码。也许与MathContext
有关?
我想这是因为通常你不需要它。而在Java中,你需要像
BigDecimal b = new BigDecimal(1.23).add(BigDecimal.ZERO);
斯卡拉
类型的东西,还有数转换,这种转换意味着你可以写
val b = BigDecimal(1.23) + 0
你也可以把它写简单地BigDecimal(0)
。如果你实例化了很多,你可能想将它缓存为一个命名值(与其他任何数字一样),但通常你不需要,并且我认为它有助于简化API,如果你删除了特殊情况必须记住。
如果我猜,这是因为预期的方式来获得该值会是这样的:
val zero: BigDecimal = 0
好点。感谢您的回答,但我接受Luigi的答案,因为我认为它更详细,对未来的访问者更有用。 – pr1001 2012-02-27 23:27:05