Все ноды/Data/Operators

Логика

Логическая операция: сравнение (==, !=, >, <, >=, <=) или булева операция (and, or, not) над двумя значениями. Возвращает булев результат. Часто используется перед If-нодой.

Логика▶
ВходЗначение
A
B

Тип в графе: logic_op

Exec

Можно включить выход ошибки и обработать сбой отдельным путём.

Порты можно разделить на исполнение и данные (split ports).

Как попробовать

Минимальный рабочий сценарий

Вход
Логика▶
Значение
Выход▶
  • Исполнение + данные
  • Данные
Нажмите «Скопировать ноды», откройте редактор и нажмите Ctrl+V на холсте.

Запускается сразу

Как применять

Нода сравнивает два значения и отдаёт true или false как данные: флаг можно записать в переменную, передать дальше по цепочке или подать на вход другой ноды.

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

Как это работает

Операнды приходят в порты «A» и «B»; порт «Вход» запускает шаг и дополняет недостающий операнд, если получил массив [a, b] или объект {"a": …, "b": …}. Операция «Не (!a)» использует только «A».

Сравнения различаются по строгости. «Равно» и «Не равно» сверяют значения как есть, без приведения типов. «Больше», «Меньше» и их варианты сначала переводят обе стороны в числа. «И», «Или», «Не» работают по истинности значения: непустая строка, ненулевое число и непустой список считаются истиной.

Частые ошибки

  • Число, пришедшее текстом, не равно числу. "5" и 5 при сравнении «Равно» дают false. Задайте тип на источнике — например, в Константе или в объявлении переменной.
  • Числовое сравнение нечисел молча даёт false. «Больше» на двух строках не падает, а возвращает отрицательный ответ — ветка ниже пойдёт не туда, а ошибки в запуске не будет.
  • Строка «false» истинна. Для «И», «Или», «Не» важна непустота, а не содержимое: текст false, пришедший из шаблона, считается истиной. Сравнивайте такие значения через «Равно».
  • Отсутствующий операнд останавливает шаг. Единственное исключение — «Не (!a)», которому «B» не нужен.
  • В шаблоне результат выглядит как True и False — с заглавной буквы. Сравнивая его ниже как текст, учитывайте написание.

Входы

ПортПроводДанныеПримечания
ВходinputИсполнение + данныеexecute_data—

Запускает шаг и приносит значения: массив из двух элементов [a, b] или объект {"a": …, "b": …} заполняет то из A/B, что не подключено отдельно.

AaДанныеdata—

Первое значение.

обязателен

BbДанныеdata—

Второе значение (для «не» не используется).

Выходы

ПортПроводДанныеПримечания
ЗначениеoutputИсполнение + данныеexecute_dataobject

Настройки

ПолеТипПо умолчаниюОписание
Операцияoperationstring==

Как сравнивать A и B. Для «не» используется только A.

Варианты: == — Равно (==), != — Не равно (!=), > — Больше (>), < — Меньше (<), >= — Больше или равно (>=), <= — Меньше или равно (<=), and — И (&&), or — Или (||), not — Не (!a)

Общие поля

Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.

  • expose_error_output — Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этой ноды.
  • split_ports_in — Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.
  • split_ports_out — Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.