Fino ad oggi, ho pensato che per esempio:
i += j;
Era solo una scorciatoia per:
i = i + j;
Ma se proviamo questo:
int i = 5;
long j = 8;
Quindi i = i + j;non verrà compilato ma i += j;verrà compilato correttamente.
Vuol dire che in realtà i += j;è una scorciatoia per qualcosa di simile
i = (type of i) (i + j)?
i+=(long)j;anche compilerà bene.
i += (int) f;lancia f prima dell'aggiunta, quindi non è equivalente. (int) i += f;lancia il risultato dopo l'assegnazione, neanche equivalente. non ci sarebbe posto per mettere un cast che significherebbe che vuoi lanciare il valore dopo l'aggiunta, ma prima dell'assegnazione.