# Operator precedence

In expressions, the operator with the highest precedence is always computed first.

## Unary operators

Unary operators have the higher precedence than other operators, and between unary operators the operator closest to the actual value has the highest precedence. Post-operators have higher precedence than pre-operators.

This list shows the available unary operators.

`::` | scope resolution operator
`[]` | indexing operator
`++ --` | post increment and decrement
`.` | member access
`++ --` | pre increment and decrement
`not !` | logical not
`+ -` | unary positive and negative
`~` | bitwise complement
`@` | handle of

## Binary and ternary operators

This list shows the dual and ternary operator precedence in decreasing order.

`* / %` | multiply, divide, and modulo
`+ -` | add and subtract
`<< >> >>>` | left shift, right shift, and arithmetic right shift
`&` | bitwise and
`^` | bitwise xor
`|` | bitwise or
`<= < >= >` | comparison
`== != is !is xor ^^` | equality, identity, and logical exclusive or
`and &&` | logical and
`or ||` | logical or
`?:` | condition
`= += -= *= /= = &= |= ^= <<= >>= >>>=` | assignment and compound assignments