Versions/v1.0.5/English

Operators

Sections1
On This Page1
API Symbols0

Operators

The following table lists all operators supported by Cangjie, along with their precedence and associativity. In the precedence column, a smaller numerical value indicates higher operator precedence.

| Operator | Precedence | Meaning | Example | Associativity |
|:----------------------------|:----------|:---------------------|:------------------------------------------------------------|--------------|
| @ | 0 | Macro invocation | @id | Right |
| . | 1 | Member access | expr.id | Left |
| [] | 1 | Indexing | expr[expr] | Left |
| () | 1 | Function call | expr(expr) | Left |
| ++ | 2 | Increment | var++ | None |
| -- | 2 | Decrement | var-- | None |
| ? | 2 | Question mark | expr?.id, expr?[expr], expr?(expr), expr?{expr} | None |
| ! | 3 | Bitwise NOT, Logical NOT | !expr | Right |
| - | 3 | Unary minus | -expr | Right |
| | 4 | Exponentiation | expr expr | Right |
| , / | 5 | Multiplication, Division | expr expr, expr / expr | Left |
| % | 5 | Modulo | expr % expr | Left |
| +, - | 6 | Addition, Subtraction | expr + expr, expr - expr | Left |
| << | 7 | Bitwise left shift | expr << expr | Left |
| >> | 7 | Bitwise right shift | expr >> expr | Left |
| .. | 8 | Left-closed right-open range | expr..expr | None |
| ..= | 8 | Closed range | expr..=expr | None |
| < | 9 | Less than | expr < expr | None |
| <= | 9 | Less than or equal | expr <= expr | None |
| > | 9 | Greater than | expr > expr | None |
| >= | 9 | Greater than or equal | expr >= expr | None |
| is | 9 | Type check | expr is Type | None |
| as | 9 | Type conversion | expr as Type | None |
| == | 10 | Equality | expr == expr | None |
| != | 10 | Inequality | expr != expr | None |
| & | 11 | Bitwise AND | expr & expr | Left |
| ^ | 12 | Bitwise XOR | expr ^ expr | Left |
| | | 13 | Bitwise OR | expr | expr | Left |
| && | 14 | Logical AND | expr && expr | Left |
| || | 15 | Logical OR | expr || expr | Left |
| ?? | 16 | Coalescing operator | expr ?? expr | Right |
| |> | 17 | Pipeline operator | id |> expr | Left |
| ~> | 17 | Composition operator | expr ~> expr | Left |
| = | 18 | Assignment | id = expr | None |
| = | 18 | Compound operator | id = expr | None |
| = | 18 | Compound operator | id = expr | None |
| /= | 18 | Compound operator | id /= expr | None |
| %= | 18 | Compound operator | id %= expr | None |
| += | 18 | Compound operator | id += expr | None |
| -= | 18 | Compound operator | id -= expr | None |
| <<= | 18 | Compound operator | id <<= expr | None |
| >>= | 18 | Compound operator | id >>= expr | None |
| &= | 18 | Compound operator | id &= expr | None |
| ^= | 18 | Compound operator | id ^= expr | None |
| |= | 18 | Compound operator | id |= expr | None |
| &&= | 18 | Compound operator | id &&= expr | None |
| ||= | 18 | Compound operator | id ||= expr | None |