Sampai hari ini, saya pikir itu misalnya:
i += j;
Itu hanya jalan pintas untuk:
i = i + j;
Tetapi jika kita coba ini:
int i = 5;
long j = 8;
Maka i = i + j;
tidak akan dikompilasi tetapi i += j;
akan dikompilasi dengan baik.
Apakah ini berarti bahwa sebenarnya i += j;
merupakan jalan pintas untuk hal seperti ini
i = (type of i) (i + j)
?
i+=(long)j;
bahkan akan dikompilasi dengan baik.
i += (int) f;
melakukan f sebelum penambahan, jadi itu tidak setara. (int) i += f;
melemparkan hasil setelah penugasan, tidak sama. tidak akan ada tempat untuk memasang pemain yang menandakan bahwa Anda ingin memberikan nilai setelah menambahkan, tetapi sebelum penugasan.