...
- If the RHS type is one of the valid types, then the operation will proceed as it is and the result calculated according to the table below.
- If the RHS type is one of the convertible types, then it will attempt to convert it to one of the valid types (in the order the valid types are presented in the table below) until the conversion succeeds and then proceeds according to case 1.
- If the RHS type is neither valid nor convertible, the program will end in error.
Operator | LHS type | Valid Types | Result | Explanations and Usage |
---|---|---|---|---|
+ | number | number | number | standard addition of numbers |
string | string | string | adds the string representation of the RHS operand at the end of the LHS string | |
boolean | Unsupported | |||
date | interval | date | adds the interval to the date and returns the result | |
interval | interval | interval | adds the two intervals and returns the result | |
date | date | adds the interval to the date and returns the result | ||
<type> [] | <type> | <type> [] | adds the RHS value to the LHS array, where <type> can be any type. | |
- | number | number | number | standard subtraction of numbers |
string | string | string | removes all occurrences of the RHS string in the LHS value | |
boolean | Unsupported | |||
date | date | interval | returns the interval difference between the two dates | |
interval | date | subtracts the RHS interval from the date and returns the value | ||
interval | interval | interval | standard interval subtraction | |
<type>[] | <type> | <type>[] | removes the first occurrence of the RHS value from the array; <type> can be any type. | |
* | number | number | number | standard multiplication of numbers |
interval | interval | multiplies the interval by the number of times specified by the LHS operand and returns the result | ||
number [] | number | number [] | multiplies each value in the LHS array with the number in the RHS operand and returns the result | |
string | Unsupported | |||
boolean | Unsupported | |||
date | Unsupported | |||
interval | number | interval | multiplies the interval by the number of times specified by the RHS operand and returns the result | |
<type>[] (except number) | Unsupported | |||
/ | number | number | number | standard division of numbers |
number [] | number | number [] | divides each value in the LHS array by the number in the RHS operand and returns the result | |
string | Unsupported | |||
boolean | Unsupported | |||
date | Unsupported | |||
interval | number | interval | divides the interval by the number specified in the RHS operand | |
<type>[] (except number) | Unsupported | |||
% | number | number | number | standard modulo division of numbers |
number [] | number | number [] | applies the modulo operator on each number in the LHS array with the number in the RHS operand and returns the results | |
string | Unsupported | |||
boolean | Unsupported | |||
date | Unsupported | |||
interval | Unsupported | |||
<type>[] (except number) | Unsupported |
Tip | ||
---|---|---|
You can also use the combined forms of the arithmetic operators with the attrib operator: +=, -=, *= and /=.
|
...
Tip | ||
---|---|---|
Numbers also support the pre/post increment/decrement operators.
|
Comparison operators
Operator | Operands | Return | Explanations and Usage |
---|---|---|---|
== (alias 'eq') | Right operand will be casted to the left operand's type if their types are different | true/false | Returns true if the values are equal and false otherwise. |
!= (alias 'neq') | Right operand will be casted to the left operand's type if their types are different | true/false | Returns false if the values are equal and true otherwise. |
< (alias 'lt') | Right operand will be casted to the left operand's type if their types are different | true/false | Returns true if the first value is lower than the second one and false otherwise. |
> (alias 'gt') | Right operand will be casted to the left operand's type if their types are different | true/false | Returns true if the first value is greater than the second one and false otherwise. |
<= (alias 'le') | Right operand will be casted to the left operand's type if their types are different | true/false | Returns true if the first value is lower then or equal to the second one and false otherwise. |
>= (alias 'gt') | Right operand will be casted to the left operand's type if their types are different | true/false | Returns true if the first value is greater than or equal to the second one and false otherwise. |
Logical operators
Operator | Operands | Return | Explanations and Usage |
---|---|---|---|
&& (alias 'and') | boolean && boolean | true/false | Logical "and" |
|| (alias 'or') | boolean || boolean | true/false | Logical "or" |
! (alias 'not') | boolean | true/false | Logically complements of the specified boolean. |
! (alias 'not') | number | number | Complements the number in relation to 0. (returns number * -1) |
Ternary operators
Operator | Operands | Return | Explanations and Usage | ||
---|---|---|---|---|---|
?: | boolean, <type>, <type> | <type> |
If <condition> is true, returns <ifTrueValue>, otherwise returns <ifFalseValue>. Note that <ifTrueValue> and <ifFalseValue> must have same type. |
Anchor | ||||
---|---|---|---|---|
|
...
The indexing operator can also be used with certain simple types (not arrays) and a specific value to provide additional functionality.
SIL type | Index Value | Get | Get Return Type | Set |
---|---|---|---|---|
string | a number | Gets the character at the specified index in the string | string | Inserts a character at the specified index. If given a longer string, it will insert the first character of the string. |
date | "DAY" | Gets the day of month from the date | number | Unsupported |
"MONTH" | Gets the month from the date | number | Unsupported | |
"YEAR" | Gets the year from the date | number | Unsupported | |
"HOUR" | Gets the hour (0-23) from the date | number | Unsupported | |
"MINUTE" | Gets the minute (0-59) from the date | number | Unsupported | |
"SECOND" | Gets the seconds (0-59) from the date | number | Unsupported | |
"MILLISECOND" | Gets the milliseconds (0-999) from the date | number | Unsupported | |
"WEEK" | Gets the week number within the current year | number | Unsupported | |
"WEEKINMONTH" | Gets the week number within the current month | number | Unsupported | |
"TOMILLIS" | Gets the current time as UTC milliseconds from the epoch. | number | Unsupported | |
"DAYOFWEEK" | Gets the three letter format for the day of the week (e.g. "Mon", "Tue", "Wed" etc) | string | Unsupported | |
"MONTHNAME" | Gets the three letter format for the name of the month (e.g. "Jan", "Feb", "Mar", etc.) | string | Unsupported | |
interval | "WEEK" | Gets the number of whole weeks inside the interval (e.g. interval i = "1w 14d"; i["WEEK"] will return 3) | number | Unsupported |
"DAY" | Gets the number of whole days inside the interval (e.g. interval i = "1d 48h"; i["DAY"] will return 3) | number | Unsupported | |
"HOUR" | Gets the number of whole hours inside the interval (e.g. interval i = "1h 120m"; i["HOUR"] will return 3) | number | Unsupported | |
"MINUTE" | Gets the number of whole miuntes inside the interval (e.g. interval i = "1m 120s"; i["MINUTE"] will return 3) | number | Unsupported | |
"SECOND" | Gets the number of seconds inside the interval (e.g. interval i = "1h 1m 3s"; i["SECOND"] will return 3) | number | Unsupported | |
"TOMILLIS" | Gets the number of milliseconds inside the interval | number | Unsupported |
See also
Info |
---|
...