Comment on page
Проверка условий в слотах Transition Rule и Timer
В этой статье описан синтаксис, используемый для проверки условий в слотах Transition Rule и Timer.
Операндами (аргументами) проверки условий могут быть числа, строки, переменные, а также логические выр ажения.
Логическое выражение ー любая операция сравнения, проверка на соответствие регулярному выражению или проверка на наличие переменной в контексте, с использованием указанного ниже синтаксиса, например: {{ @A }} == {{ @B }}.
Логическое выражение (expression) может содержать несколько выражений, объединенных в единое с использованием круглых скобок и операций “И”/”ИЛИ”. Например:
(( == ) && ((phone not in context) || !( ~ /(+7|7|8)?[\s-]?(?[489][0-9]{2})?[\s-]?[0-9]{3}[\s-]?[0-9]{2}[\s-]?[0-9]{2}$/))).
Такое логическое выражение будет верным (true), если:
- Переменные А и В равны; ЛИБО
- Переменная phone отсутствует в Контексте Чата; ЛИБО
- Значение переменной phone не соответствует указанному регулярному выражению.
Операция | Символ | Область применения | Особенности | Пример |
Проверка на равенство | == | переменные любого типа | тип не учитывается, проверяя на равенство 4 и ‘4’, получим true | {{ @A }} == {{ @B }} дает true, если переменная А равна переменной B |
Проверка на неравенство | != | переменные любого типа | | {{ @A }} != {{ @B }} дает true, если переменная А не равна переменной B |
Проверка на меньше | < | только числовые переменные | | {{ @A }} < {{ @B }} дает true, если переменная А меньше переменной B |
Проверка на больше | > | только числовые переменные | | {{ @A }} > {{ @B }} дает true, если переменная А больше переменной B |
Проверка на меньше или равно | <= | только числовые переменные | | {{ @A }} <= {{ @B }} дает true, если переменная А меньше или равна переменной B |
Проверка на больше или равно | >= | только числовые переменные | | {{ @A }} >= {{ @B }} дает true, если переменная А меньше или равна переменной B |
Проверка на наличие переменной в Контексте Чата | in context | переменные любого типа | переменная указывается без использования специального синтаксиса | A in context дает true, если переменная A есть в Контексте Чата |
Проверка на отсутствие переменной в Контексте Чата | not in context | переменные любого типа | переменная указывается без использования специального синтаксиса | A not in context дает true, если переменной A нет в Контексте Чата |
Проверка истинности | == True | выражения и булевы переменные | выражение без использования операции == True даёт тот же результат, что и с использованием этой операции | {{ @A }} == True дает true, если булева переменная A истинна.
(expression) == True даёт true, если логическое выражение expression истинно.
|
Проверка ложности | == False или !(expression) | выражения и булевы переменные | | {{ @A }} == False, так же как !({{ @A }}), даёт true, если булева переменная A ложна.
(expression) == False, так же как !(expression) даёт true, если логическое выражение expression ложно. |
Операция “И” | && | выражения и булевы переменные | Части сложных выражений можно объединять в круглые скобки для обозначения приоритетов операций | {{ @A }} && {{ @B }} дает true, если обе булевы переменные A и B истинны.
A && B дает true, если оба логических выражения A и B истинны |
Операция “Или” | || | выражения и булевы переменные | Части сложных выражений можно объединять в круглые скобки для обозначения приоритетов операций | {{ @A }} || {{ @B }} дает true, если одна из булевых переменных A и B истинна.
A || B дает true, если одно из логических выражений A и B истинно |
Проверка на соответствие регулярному выражению | ~ /regexp/ | строковые и числовые переменные + регулярные выражения | | {{ @A }} ~ /regexp/ дает true, если значение переменной A соответствует регулярному выражению regexp |