Difference between revisions of "Operator precedence"
m (Typography) |
(remove unordered comparison operators) |
||
(2 intermediate revisions by one other user not shown) | |||
Line 19: | Line 19: | ||
| 9 || Bit shift operators || <code><<</code> <code>>></code> <code>>>></code> || <code>>>></code> is the always logical shift operator. | | 9 || Bit shift operators || <code><<</code> <code>>></code> <code>>>></code> || <code>>>></code> is the always logical shift operator. | ||
|- | |- | ||
− | | 6a || Comparison operators || <code>==</code> <code>!=</code> <code>></code> <code><</code> <code>>=</code> <code> | + | | 6a || Comparison operators || <code>==</code> <code>!=</code> <code>></code> <code><</code> <code>>=</code> <code><=</code> <code>in</code> <code>!in</code> <code>is</code> <code>!is</code> |
|| Unordered with respect to bitwise operators. Cannot be chained. | || Unordered with respect to bitwise operators. Cannot be chained. | ||
|- | |- | ||
Line 43: | Line 43: | ||
| 0 || Range separator || <code>..</code> || Not a real operator, hardwired into syntax at specific points. | | 0 || Range separator || <code>..</code> || Not a real operator, hardwired into syntax at specific points. | ||
|} | |} | ||
+ | |||
+ | |||
+ | [[Category:D Language]] |
Latest revision as of 05:03, 3 November 2019
Priority | Description | Operators | Comments |
---|---|---|---|
15 | Template instantiation | ! |
Top-level , in rhs expression treated specially. Cannot be chained.
|
14.5 | Lambda abstraction | => |
Not a real operator, occurs twice, this is binding power to the left. |
14 | Postfix operators | . ++ -- ( [ |
( and [ treat top-level , in rhs expression specially and require balanced ) or ] in order to be completed.
|
13 | Power operator | ^^ |
Right-associative. |
12 | Unary operators | & ++ -- * + - ! ~ cast |
|
11 | Multiplicative operators | * / % |
|
10 | Additive operators | + - ~ |
Binary ~ is the array concatenation operator.
|
9 | Bit shift operators | << >> >>> |
>>> is the always logical shift operator.
|
6a | Comparison operators | == != > < >= <= in !in is !is
|
Unordered with respect to bitwise operators. Cannot be chained. |
8b | Bitwise And | & |
Unordered with respect to comparison operators. |
7b | Bitwise Xor | ^ |
Unordered with respect to comparison operators. |
6b | Bitwise Or | | |
Unordered with respect to comparison operators. |
5 | Logical And | && |
Short-circuit. |
4 | Logical Or | || |
Short-circuit. |
3 | Conditional operator | ? : |
Right-associative. |
2 | Assignment operators | = ^^= *= /= %= += -= ~= <<= >>= >>>= &= |= ^=
|
Right-associative. |
1.5 | Lambda abstraction | => |
Not a real operator, occurs twice, this is binding power to the right. |
1 | Comma operator | , |
Not to be confused with other uses of , , though their precedence is the same.
|
0 | Range separator | .. |
Not a real operator, hardwired into syntax at specific points. |