Podria parecer que el siguiente codigo:
i += j;
Es equivalente a este otro:
i = i + j;
Pero si hacemos lo siguiente:
int i = 5;
long j = 8;
Veremos que este código:
i += j;
Si compila mientras que este otro:
i = i + j;
Pues bien esto sucede porque de hecho el operador "+=" es un operador que equivale a lo siguente:
i = (type de i) (i + j)
Este es un extracto de la misma página de Oracle:
A compound assignment expression of the form E1 op= E2 is equivalent to E1 = (T)((E1) op (E2)), where T is the type of E1, except that E1 is evaluated only once.
No hay comentarios:
Publicar un comentario