Условная логика

Условная логика — это решения, которые приложение принимает во время работы. Условие всегда сводится к истине или лжи, а от результата зависит, какая ветка действий выполнится.

Из чего состоит условие

  • Условие — выражение, дающее истину или ложь.
  • Ветка True — что делать, если условие выполнено.
  • Ветка False — что делать, если нет.

true-false.png

Виды условий

Кроме простой проверки «да/нет», бывают комбинации нескольких условий и выбор значения по цепочке If/Then/Else.

Одиночное условие

Сравнение двух значений, заданных вручную или взятых из переменных. Результат — True или False.

Операторы сравнения:

  • Equal To — равно
  • Not Equal To — не равно
  • Less Than — меньше
  • Greater Than — больше
  • Less Than Or Equal To — меньше или равно
  • Greater Than Or Equal To — больше или равно
  • Is Set — значение задано
  • Is Not Set — значение не задано

single-condition.png

Несколько условий (AND/OR)

Несколько простых условий объединяются логическими И и ИЛИ — для случаев, когда одной проверки мало.

multiple-condition.png

Значение по условию (If/Then/Else)

Conditional Value подставляет разные значения в зависимости от условий: для каждого условия указывается своё значение, а на случай, когда не подошло ни одно, задаётся значение по умолчанию.

Пример — ниже.

Условия в свойствах виджетов

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

Вот как условие определяет текст виджета Text:

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

Условные действия

Действия тоже выполняются по условию — это настраивается в редакторе действий. Из простых и составных условий собираются ветвления True/False и цепочки If — Else If — Else, ровно как в свойствах виджетов.

Небольшая демонстрация с одиночным условием:

Одиночное условие превращается в составное переключателем Multiple Conditions:

перевод официальной документации FlutterFlow

обновлено

ESC