次の項目を確認してください。
byte a=1, b=2; b+=a;
完全に合法です。その間、
byte a=1, b=2; b=b+a;
許可されていません。これらはどちらも同等と見なされますが。割り当ての 2 つの方法のメカニズムに違いはありますか?
言語仕様から:
E1 op= E2 の形式の複合代入式は、E1 = (T)((E1) op (E2)) と同等です。ここで、T は E1 の型ですが、E1 は 1 回だけ評価されます。
これは、単に ではなく、b+=a
と同等であることを意味します。後者はまだ へのキャストが必要です。(byte)(a+b)
a+b
byte