Assignment Operators

D provides the following binary assignment operators for modifying D variables. You can only modify D variables and arrays. Kernel data objects and constants may not be modified using the D assignment operators. The assignment operators have the same meaning as they do in ANSI-C.

Table 2-10 D Assignment Operators

Assignment Operator Description

=

Set the left operand equal to the right expression value.

+=

Increment the left operand by the right expression value.

-=

Decrement the left operand by the right expression value.

*=

Multiply the left operand by the right expression value.

/=

Divide the left operand by the right expression value.

%=

Modulo the left operand by the right expression value.

|=

Bitwise OR the left operand with the right expression value.

&=

Bitwise AND the left operand with the right expression value.

^=

Bitwise XOR the left operand with the right expression value.

<<=

Shift the left operand left by the number of bits specified by the right expression value.

>>=

Shift the left operand right by the number of bits specified by the right expression value.

Aside from the assignment operator =, the other assignment operators are provided as shorthand for using the = operator with one of the other operators described earlier. For example, the expression x = x + 1 is equivalent to the expression x += 1, except that the expression x is evaluated once. These assignment operators obey the same rules for operand types as the binary forms described earlier.

The result of any assignment operator is an expression equal to the new value of the left expression. You can use the assignment operators or any of the operators described so far in combination to form expressions of arbitrary complexity. You can use parentheses ( ) to group terms in complex expressions.