Выражения сценариев

Обзор

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

Результат выражения может иметь тип сроки или числа. Даты также представляются в виде строк в формате RFC3339.

Значения типа bool на выходе автоматически преобразуются к строке true или false. С помощью функции ifelse(bool,any,any) результат можно привести к другим значениям, например числам 0 или 1.

Чтобы в качестве аргумента выражения использовать значение переменной, следует указать ее имя в квадратных скобках.

Для явного указания строки следует заключать текст в кавычки. В противном случае, сначала будут вычислены все арифметические комбинации, доступные для расчета. В приведенных примерах 2.3 и 2.4 результат будет разный, то есть началом результирующей строки примера 2.3 будет являться символ «5», а примера 2.4 – символы «23».

Разбиение на строки производится с помощью функции endline().

Примеры числовых выражений:

  • (1.1) [переменная_число_1] + 1

  • (1.2) 2 ^ [переменная_число_2] * ( Log10 ( [переменная_число_3] ) + 2 )

  • (1.3) sin ( len ( [переменная_строка_1] ) )

Примеры строковых выражений:

  • (2.1) [переменная_строка_1] + [переменная_строка_2]

  • (2.2) "Кусок текста" + [переменная_строка_1]

  • (2.3) 2 + 3 + [переменная_строка_1]

  • (2.4) "2" + "3" + [переменная_строка_1]

  • (2.5) SubStr ( [переменная_строка], 1, Length ( [переменная_строка] ) - 1 )

  • (2.6) If ( num([a]) > 5, "больше", "меньше")

Операции

Table 1. Операции над аргументами
Функция Тип значения Описание

+

num | str

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

++

str

Приводит аргументы к строке и сцепляет их.

-

num

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

*

num

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

/

num

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

div

int

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

rem

int

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

==

bool

Приводит значения аргументов к одному типу и сравнивает их. Равенство.

/=

bool

Приводит значения аргументов к одному типу и сравнивает их. Неравенство.

>

bool

Приводит значения аргументов к одному типу и сравнивает их. Больше.

>=

bool

Приводит значения аргументов к одному типу и сравнивает их. Больше или равно.

<

bool

Приводит значения аргументов к одному типу и сравнивает их. Меньше.

=<

bool

Приводит значения аргументов к одному типу и сравнивает их. Меньше или равно.

Шаблоны

Приложение редактора сценариев позволяет задавать выражения с помощью шаблонов.

Шаблон представляет собой строку, в которую в фигурных скобках входят вычислимые выражения. При этом переход между вкладками задания шаблона и задания выражения производит автоматическое взаимное преобразование.

Пример выражения
"abc." + str([var]) + ".def" + endline() + replace([var],";",".") + substring([var2],3,5) + "zzz"
Пример шаблона
abc.{str([var])}.def
{replace([var1],";",".") + substring([var2],3,5)}zzz