D では、次の二項代入演算子を使って、D 変数を変更できます。変更できるのは、D の変数と配列だけです。D の代入演算子では、カーネルデータオブジェクトや定数は変更できません。代入演算子の効果は、ANSI-C の場合と同じです。
表 2–10 D の代入演算子
= |
左のオペランドを右の式の値と等しくする |
+= |
左のオペランドを右の式の値の分だけ増分する |
-= |
左のオペランドを右の式の値の分だけ減分する |
*= |
左のオペランドに右の式の値を掛ける |
/= |
左のオペランドを右の式の値で割る |
%= |
左のオペランドを右の式の値で割ったときの剰余を求める |
|= |
左のオペランドと右の式の値の論理和 OR をビット単位で計算する |
&= |
左のオペランドと右の式の値の論理積 AND をビット単位で計算する |
^= |
左のオペランドと右の式の値の排他的論理和 XOR をビット単位で計算する |
<<= |
左のオペランドを、右の式の値で指定されたビット数だけ左にシフトする |
>>= |
左のオペランドを、右の式の値で指定されたビット数だけ右にシフトする |
= 以外の代入演算子は、= とすでに説明したその他の演算子を組み合わせた演算の省略形として使用できます。たとえば、x = x + 1 という式は、x の数値が 1 度評価される点を除いて、x += 1 と同じです。これらの代入演算子は、以前に説明した二項のオペランドと同じ規則で使用します。
代入演算子の結果は、左側の式の新しい値と同等の式になります。代入演算子やこれまでに説明したその他の演算子を組み合わせると、複合式を表現できます。複合式の項は、丸括弧 ( ) を使ってグループ化できます。