До сьогодні я думав, що наприклад:
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;підраховує результат після призначення, не рівнозначний. не можна було б ставити акторський склад, який би означав, що ви хочете передати значення після додавання, але перед призначенням.