2012-02-24 13 views
6

Es bastante fácil para crear:¿Por qué el BigDecimal de Scala no tiene un CERO?

object zero extends BigDecimal(java.math.BigDecimal.ZERO) 

estoy preguntando si esto fue un descuido, o si hubo una decisión consciente de no añadir esto y, si es así, hay razones por las que debería evitar la codigo arriba. Tal vez tiene que ver con el MathContext?

Respuesta

4

me gustaría pensar que es debido a que por lo general no lo necesita. Mientras que en Java necesita escribir algo así como

BigDecimal b = new BigDecimal(1.23).add(BigDecimal.ZERO); 

en Scala, hay conversiones de números que significa que usted puede escribir

val b = BigDecimal(1.23) + 0 

También puede escribir simplemente como BigDecimal(0). Si está instanciando eso mucho, puede guardarlo en caché como un valor con nombre (como para cualquier otro número), pero normalmente no será necesario, y creo que ayuda a simplificar la API si elimina casos especiales que usted tengo que recordar.

14

Si tuviera que adivinar, es porque la forma esperada para conseguir que el valor sería de la siguiente manera:

val zero: BigDecimal = 0 
+0

Buen punto. Gracias por su respuesta, pero estoy aceptando la respuesta de Luigi porque creo que es más detallada y más útil para los futuros visitantes. – pr1001

Cuestiones relacionadas