Operators

The less precedence an operator has, the less it binds.

Operator associativity:

  • l: Operator is left associative
  • r: Operator is right associative
OperatorPrecedenceAssociativityDescription
,1lComma, Tuple/argument separator
:=2rDeclaring assignment
&= ^=3rOn-object operation
|=3rOn-object operation
<<=3rOn-object operation
>>=3rOn-object operation
%=3rOn-object operation
/= *=3rOn-object operation
+= -=3rOn-object operation
=3rVariable assignment
null a4rMake empty, returns ()
||5lLazy-logical or
&&6lLazy-logical and
<>7lArgument binding
expr expr7lFunction call
|8lBitwise or
^9lBitwise xor
&10lBitwise and
== !=11lDirect value equaltity
~=11lCompare (used by Equals)
< <=12lLess, Minimum
> >=12lGreater, Maximum
>> <<13lBitwise right/left shift
a+b a-b14lAddition, substraction
a%b14lRemainder
a*b a/b15lMultiplication, Division
:16rVariable declaration
++a --a17rIncrement, Decrement
+a -a17rPositive,Negative
! ~17rLogical not, Bitwise not
&a17rMutable
*a17r"Dereference"
a()18lFunction call
a{}18lTemplate call
a[]18lIndex call
.18lMember access
->18l"Dereference" member access