Операторы

Оператором является обозначение, которое применяется к определенным данным (таким, как числа или строки) и сообщает системе, что с ними нужно делать. Как только система выполнила оператор для данных (т.е. как только оператор "сработал"), вы всегда получаете какой-либо результат или значение. Общие операторы включают + (сложение, как в 1+1), - (вычитание, как в 2-1) и т.д.

Одно выражение может содержаться несколько операторов, таких как 1 + 2 * 3. Операторы вычисляются в определенной последовательности - не так, как они записаны в строке (слева направо). Например, 1 + 2 * 3 вычисляется в 7, а не в 9, потому что оператор умножения имеет высший приоритет по сравнению с оператором сложения. Последующая таблица также показывает приоритет операторов - операторы, расположенные вверху таблицы, вычисляются первыми при вычислении выражения.

Приоритетнось операторов

Описание

Синтаксис

Пример

Типы аргументов

Тип результата

Скобки

()

(1 + 2) * 3

Any

Any

Побитовый НЕ оператор

~

~{a}

Numeric

Numeric

Логический НЕ оператор

!

!{x} > 0

Boolean

Boolean

Мультипликативные операторы

*   /   %

{d} * 3

Numeric

Numeric

Аддитивные операторы

+   -

{b} + {c}

Numeric (или String для "+")

Numeric (или String для "+")

Операторы битового сдвига и битового сдвига без знака

>> << >>>

{a} >> 2

Numeric

Numeric

Операторы отношения

>   <   >=   <=  

{a} >= 123

Numeric

Boolean

Операторы равенства и совпадения с регулярным выражением

==   !=   ~=

{name} == "test"

Любой (Strings только для "!=")

Boolean

Битовый И оператор

&

{z} & 0xFFFF

Numeric

Numeric

Битовый "исключающий ИЛИ" оператор

^

{y} ^ 0x1A

Numeric

Numeric

Битовый ИЛИ оператор

|

{x} | 0xFF

Numeric

Numeric

Логический И оператор

&&

{z} = 1 && {x} > 0

Boolean

Boolean

Логический ИЛИ оператор

||

{x} > 5 || {y} < 1

Boolean

Boolean

Условный оператор

? :

{y} > 5 ? 1 : 0

Boolean для первого аргумента, любой тип для других аргументов

Любой

Скобки

Выражения могут также включать скобки, которые меняют приоритет операторов.

Пример:

1 + 2 * 3     вычисляются в 7

но        

(1 + 2) * 3        вычисляются в 9

Условный оператор

Условный оператор, ?:, может использоваться для условного вычисления выражений. Оператор состоит из трех аргументов. Первый аргумент вычисляется и возвращает значение типа Boolean. Если он возвращает TRUE, результатом оператора станет второй аргумент. Если первый аргумент является FALSE, результатом оператора станет третий аргумент.

condition ? value_if_true : value_if_false

Пример:

2 * 2 == 4 ? "Yes" : "No"

Разрешается в строку "Yes".

Оператор совпадения с регулярным выражением

Оба аргумента являются строками. Оператор возвращает true, если первая строка совпадает с регулярным выражением, определяемым вторым аргументом.

Пример:

"abXXXX" ~= "^abc.*"

Возвращает Boolean false.

Аддитивный оператор

Если хотя бы один из аргументов - строка, второй аргумент конвертируется в его строковое представление. В данном случае, результатом вычисления становится результат сцепления этих строк.

Пример:

"test" + 123

Имеет результат "test123".