Difference between revisions of "Operator precedence"

From D Wiki
Jump to: navigation, search
(Created page with " {| class="wikitable" ! Priority || Description || Operators || Comments |- | 15 || Template instantiation || ! || Top-level ',' in rhs expres...")
 
m (Klickverbot moved page DWiki:Operator precedence to Operator precedence: The DWiki namespace is for meta-content about DWiki itself.)
(No difference)

Revision as of 11:21, 24 December 2012

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 & ++ -- * + - ! ~
11 - * / %
10 - + - ~ Binary '~' is the concatenation operator
9 Bit shift operators << >> >>>
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