Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.

OperatorPrecedenceMeaningExampleAssociativity
@0Macro invocation@idRight
.1Member accessexpr.idLeft
[]1Indexingexpr[expr]Left
()1Function callexpr(expr)Left
++2Incrementvar++None
--2Decrementvar--None
?2Question markexpr?.id, expr?[expr], expr?(expr), expr?{expr}None
!3Bitwise NOT, Logical NOT!exprRight
-3Unary minus-exprRight
**4Exponentiationexpr ** exprRight
*, /5Multiplication, Divisionexpr * expr, expr / exprLeft
%5Moduloexpr % exprLeft
+, -6Addition, Subtractionexpr + expr, expr - exprLeft
<<7Bitwise left shiftexpr << exprLeft
>>7Bitwise right shiftexpr >> exprLeft
..8Left-closed right-open rangeexpr..exprNone
..=8Closed rangeexpr..=exprNone
<9Less thanexpr < exprNone
<=9Less than or equalexpr <= exprNone
>9Greater thanexpr > exprNone
>=9Greater than or equalexpr >= exprNone
is9Type checkexpr is TypeNone
as9Type conversionexpr as TypeNone
==10Equalityexpr == exprNone
!=10Inequalityexpr != exprNone
&11Bitwise ANDexpr & exprLeft
^12Bitwise XORexpr ^ exprLeft
|13Bitwise ORexpr | exprLeft
&&14Logical ANDexpr && exprLeft
||15Logical ORexpr || exprLeft
??16Coalescing operatorexpr ?? exprRight
|>17Pipeline operatorid |> exprLeft
~>17Composition operatorexpr ~> exprLeft
=18Assignmentid = exprNone
**=18Compound operatorid **= exprNone
*=18Compound operatorid *= exprNone
/=18Compound operatorid /= exprNone
%=18Compound operatorid %= exprNone
+=18Compound operatorid += exprNone
-=18Compound operatorid -= exprNone
<<=18Compound operatorid <<= exprNone
>>=18Compound operatorid >>= exprNone
&=18Compound operatorid &= exprNone
^=18Compound operatorid ^= exprNone
|=18Compound operatorid |= exprNone
&&=18Compound operatorid &&= exprNone
||=18Compound operatorid ||= exprNone