今日まで、私は例えばそれを考えました:
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;
代入後に結果をキャストします。同等ではありません。追加後、代入前に値をキャストすることを示すキャストを配置する場所はありません。