Bis heute dachte ich zum Beispiel:
i += j;
War nur eine Abkürzung für:
i = i + j;
Aber wenn wir das versuchen:
int i = 5;
long j = 8;
Dann i = i + j;
wird nicht kompiliert, aber gut i += j;
kompiliert.
Bedeutet das, dass es sich tatsächlich i += j;
um eine Abkürzung für so etwas handelt
i = (type of i) (i + j)
?
i+=(long)j;
sogar gut kompiliert.
i += (int) f;
Wirkt f vor dem Hinzufügen, daher ist es nicht gleichwertig. (int) i += f;
Wirkt das Ergebnis nach der Zuweisung, auch nicht gleichwertig. Es gibt keinen Platz für eine Besetzung, die anzeigt, dass Sie den Wert nach dem Hinzufügen, aber vor der Zuweisung umwandeln möchten.