Перейти к основному содержимому
Версия: 7.0

Логические операторы (AND, OR, NOT, XOR)

Логические операторы создают свойства, которые рассматривают свои операнды как логические значения класса BOOLEAN, и возвращаемым значением которых также является значение класса BOOLEAN. Если значение операнда логического оператора не равно NULL, то операнд рассматривается как значение TRUE класса BOOLEAN, иначе NULL. Результат всегда равен либо TRUE, либо NULL, но никогда не FALSE.

В платформе на данный момент поддерживаются следующие логические операторы:

ОператорНазваниеОписаниеПримерРезультат
ANDКоньюнкцияПринимает два операнда на вход, возвращает TRUE, если оба операнда не NULLTRUE AND TRUETRUE
ORДизьюнкцияПринимает два операнда на вход, возвращает TRUE, если один из операндов не NULLNULL OR TRUETRUE
NOTОтрицаниеПринимает один операнд на вход, возвращает TRUE, если операнд NULLNOT TRUENULL
XORИсключениеПринимает два операнда на вход, возвращает TRUE, если ровно один из операндов не NULLTRUE XOR TRUENULL

При более чем двух операндах XOR возвращает TRUE, если нечётное число операндов не равно NULL.

Язык

Описание синтаксиса логических операторов.

Примеры

likes = DATA BOOLEAN (Person, Person);
likes(Person a, Person b, Person c) = likes(a, b) AND likes(a, c);
outOfInterval1(value, left, right) = value < left OR value > right;
outOfInterval2(value, left, right) = NOT (value >= left AND value <= right);