До сьогодні я думав, що наприклад:
i += j;
Це був лише ярлик для:
i = i + j;
Але якщо ми спробуємо це:
int i = 5;
long j = 8;
Тоді i = i + j;
не складатимуть, а i += j;
складуть штрафи.
Чи означає це, що насправді i += j;
це ярлик для чогось подібного
i = (type of i) (i + j)
?
i+=(long)j;
навіть складатимуть штрафи.
i += (int) f;
кидає f перед додаванням, тому це не рівнозначно. (int) i += f;
підраховує результат після призначення, не рівнозначний. не можна було б ставити акторський склад, який би означав, що ви хочете передати значення після додавання, але перед призначенням.