Symbol | Precedence | Function | Number of Operands | Description |
:= | 0 | Assignment | 2 | Assigns the value of an expression on the right to the variable or array element on the left. Right-associative. The value of the assignment is the right-most operand. Supports multiple assignment i.e. a := b := c := 0 sets all 3 variables to zero. Assignment to an array variable creates a copy of the right-hand operand. |
|| | 1 | Logical Or | 2 | True if either expression is true |
&& | 2 | Logical And | 2 | True if both expressions are true |
: | 3 | Slice/Range | 2 | Specifies
a range of elements in a string or array. For strings, creates a
substring. For arrays, creates a copy of the elements within the range.
Range includes the upper element. For strings,
negative indices start at the last element and count backwards. |
== | 4 | Equality | 2 | True if the operands are equal. Operands must be comparable to each other. |
!= | 4 | Inequality | 2 | True if the operands are not equal. |
> | 5 | Greater Than | 2 | Operands must be comparable and ordered. For strings, comparison is case-insensitive. |
< | 5 | Less Than | 2 | For strings, case-insensitive. |
>= | 5 | Greater or Equal | 2 | For strings, case-insensitive. |
<= | 5 | Less than or Equal | 2 | For strings, case-insensitive. |
| | 6 | Bitwise Or | 2 | Performs a bitwise or, demoting the operands to integers |
& | 7 | Bitwise And | 2 | Performs a bitwise and, demoting the operands to integers. |
<< | 8 | Binary Left Shift | 2 | Shifts left operand left by specified number of bits, demoting both operands to integers. |
>> | 8 | Binary Right Shift | 2 | Shifts left operand right by specified number of bits, demoing both operands to integers. |
+ | 9 | Addition/Concatentation | 2 | Adds two numbers or joins two strings. |
- | 9 | Subtraction | 2 | Self-explanatory. |
* | 10 | Multiplication | 2 | Self-explanatory. |
/ | 10 | Division | 2 | Self-explanatory. |
% | 10 | Modulo | 2 | Returns the remainder of integer division. |
^ | 11 | Exponentiation | 2 | Raises left operand to the power of the right operand. |
- | 12 | Negation | 1 | Returns the opposite of an expression. |
$ | 12 | Stringize | 1 | Returns a string representation of an expression. (Shorthand for ToString). |
! | 13 | Logical Not | 1 | Returns the opposite of a boolean expression. i.e. !(true) evaluates to false. |
( ) | 14 | Parentheses | 0 | Enclose expressions within parentheses to override default precedence rules. |
[ ] | 15 | Subscript | 2 | For
arrays, accesses the element having the specified key. For strings,
returns a string containing the single character at the specified
position. The expression within the brackets is treated as if it were parenthesized (overrides precedence rules). |