Operators
Operators in TorqueScript behave very similarly to operators in real world math and other programming languages. You should recognize quite a few of these from math classes you took in school, but with small syntactical changes. The rest of this section will explain the syntax and show a brief example, but we will cover these in depth in later guides.
These are your basic math ops.
Operator | Name | Example | Explanation |
---|---|---|---|
* | multiplication | $a * $b | Multiply $a and $b . |
/ | division | $a / $b | Divide $a by $b . |
% | modulo | $a % $b | Remainder of $a divided by $b . |
+ | addition | $a + $b | Add $a and $b . |
- | subtraction | $a - $b | Subtract $b from $a . |
++ | auto-increment (post-fix only) | $a++ | Increment $a . |
-- | auto-decrement (post-fix only) | $b-- | Decrement $b . |
Used in comparing values and variables against each other.
Operator | Name | Example | Explanation |
---|---|---|---|
< | Less than | $a < $b | 1 if $a is less than $b |
> | More than | $a > $b | 1 if $a is greater than $b |
<= | Less than or Equal to | $a <= $b | 1 if $a is less than or equal to $b |
>= | More than or Equal to | $a >= $b | 1 if $a is greater than or equal to $b |
== | Equal to | $a == $b | 1 if $a is equal to $b |
!= | Not equal to | $a != $b | 1 if $a is not equal to $b |
! | Logical NOT | !$a | 1 if $a is 0 |
&& | Logical AND | $a && $b | 1 if $a and $b are both non-zero |
|| | Logical OR | $a || $b | 1 if either $a or $b is non-zero |
$= | String equal to | $c $= $d | 1 if $c equal to $d . |
!$= | String not equal to | $c !$= $d | 1 if $c not equal to $d . |
Used for comparing and shifting bits.
Operator | Name | Example | Explanation |
---|---|---|---|
~ | Bitwise complement | ~$a | flip bits 1 to 0 and 0 to 1 |
& | Bitwise AND | $a & $b | composite of elements where bits in same position are 1 |
| | Bitwise OR | $a | $b | composite of elements where bits 1 in either of the two elements |
^ | Bitwise XOR | $a ^ $b | composite of elements where bits in same position are opposite |
<< | Left Shift | $a << 3 | element shifted left by 3 and padded with zeros |
>> | Right Shift | $a >> 3 | element shifted right by 3 and padded with zeros |
Used for setting the value of variables.
Operator | Name | Example | Explanation |
---|---|---|---|
= | Assignment | $a = $b; | Assign value of $b to $a |
op= | Assignment Operators | $a op= $b; | Equivalent to $a = $a op $b , where op can be any of: * / % + - & | ^ << >> |
There are special values you can use to concatenate strings and variables. Concatenation refers to the joining of multiple values into a single variable. The following is the basic syntax:
"string 1" operation "string 2"
You can use string operators similarly to how you use mathematical operators (=, +, -, *). You have four operators at your disposal:
Operator | Name | Example | Explanation |
---|---|---|---|
@ | String concatenation | $c @ $d | Concatenates strings $c and $d into a single string. Numeric literals/variables convert to strings. |
NL | New Line | $c NL $d | Concatenates strings $c and $d into a single string separated by new-line. Such a string can be decomposed with getRecord() |
TAB | Tab | $c TAB $d | Concatenates strings $c and $d into a single string separated by tab. Such a string can be decomposed with getField() |
SPC | Space | $c SPC $d | Concatenates strings $c and $d into a single string separated by space. Such a string can be decomposed with getWord() |
General programming operators.
Operator | Name | Example | Explanation |
---|---|---|---|
? : | Conditional | x ? y : z | Evaluates to y if x equal to 1, else evaluates to z |
[] | Array element | $a[5] | Synonymous with $a5 |
( ) | Delimiting, Grouping | t2dGetMin(%a, %b) if ( $a == $b ) ($a+$b)*($c-$d) | Argument list for function call Used with if, for, while, switch keywords Control associativity in expressions |
{} | Compound statement | if (1) {$a = 1; $b = 2;} function foo() {$a = 1;} | Delimit multiple statements, optional for if, else, for, while Required for switch, datablock, new, function |
, | Listing | t2dGetMin(%a, %b) %M[1,2] | Delimiter for arguments |
:: | Namespace | Item::onCollision() | This definition of the onCollision() function is in the Item namespace |
. | Field/Method selection | %obj.field %obj.method() | Select a console method or field |
// | Single-line comment | // This is a comment | Used to comment out a single line of code |
/* */ | Multi-line comment | /*This is a a multi-line comment*/ | Used to comment out multiple consecutive lines /* opens the comment, and */ closes it |
Last modified 9mo ago