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
= |
set the left-hand operand
equal to the right-hand expression value |
+= |
increment the left-hand operand by the right-hand
expression value |
-= |
decrement the left-hand operand by the right-hand expression value |
*= |
multiply the left-hand
operand by the right-hand expression value |
/= |
divide the left-hand operand by the right-hand
expression value |
%= |
modulo the left-hand operand by the right-hand expression value |
|= |
bitwise OR the
left-hand operand with the right-hand expression value |
&= |
bitwise AND the left-hand operand with
the right-hand expression value |
^= |
bitwise XOR the left-hand operand with the right-hand expression
value |
<<= |
shift the left-hand operand left by the number of bits specified by
the right-hand expression value |
>>= |
shift the left-hand operand right by the number of
bits specified by the right-hand 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-hand 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.