Формы значений
На каждой стрелке между шагами написано, что по ней течёт. Это форма значения — то, что конструктор может сказать честно, не открывая книг проекта. Форма считается из самих шагов, а не из данных, поэтому она известна до всякого прогона.
Подписи на стрелках
Section titled “Подписи на стрелках”| Подпись | Что течёт |
|---|---|
объект | Один объект проекта. |
объекты | Список объектов. |
текст | Одна строка. |
текст ×N | Список строк. У объектов множественность выражается словом, у остальных — пометкой ×N: «текст ×N» короче и не путается с «текстами». |
число · число ×N | Число или список чисел. |
да / нет · да / нет ×N | Признак. |
словарь · словарь ×N | Набор «имя → значение»: строка листа, набор колонок объекта. |
значение · значения | Форма неизвестна: так выглядит результат вызова чужой схемы или ещё не разобранного «Своего кода». |
Связь всегда несёт список
Section titled “Связь всегда несёт список”Внутри движка по связи всегда идёт список; одиночное значение — это список из одного элемента. Поэтому шаги пишутся один раз и работают и над значением, и над выборкой: «Взять поле» одинаково берёт поле у одного объекта и у семидесяти двух.
Отсюда правило: количество на выходе обычно повторяет количество на входе. Пришёл один путь — вышла одна часть пути; пришло десять — вышло десять.
Почему палитра гасит часть действий
Section titled “Почему палитра гасит часть действий”Каждый вход шага знает, что он умеет принять. Палитра берёт форму того, чем схема заканчивается сейчас, и гасит действия, которые эту форму не примут. Правило одно на палитру, на автоподключение и на проверку связей — иначе палитра предлагала бы шаг, который потом не подключится.
Что чем считается взаимозаменяемым
Section titled “Что чем считается взаимозаменяемым”| Правило | Пояснение |
|---|---|
| текст = число = да / нет | Для счёта это одно и то же: шаги читают их строкой, и проверка связей их не различает. |
| объект ≠ текст | Объект строкой не становится. Иначе объект, уехавший в «Склеить», попал бы в ячейку именем класса. |
| словарь ≠ текст | По той же причине. |
| словарь принимают отдельно | Часть входов ждёт словарь явно — туда словарь и подключают, а не в первое «Значение». Например вход «Список» у «Подставить по списку». |
Шаг, который встаёт по-разному
Section titled “Шаг, который встаёт по-разному”Некоторые действия меняют настройки в зависимости от того, после чего их поставили. Это не магия редактора — так устроены сами шаги.
| Действие | После объектов или словаря | После текста |
|---|---|---|
| Найти объекты | Встаёт с источником в пришедшем — отбором того, что нашёл шаг выше. Второй поход в проект посреди цепочки почти всегда описка. | Идёт в проект, а пришедший текст становится операндом условия. |
| Взять N-й | То же: отбирает из пришедшего. | После списка текстов берёт из него («Разбить “A, B, C” → взять второй»). После одиночного текста идёт в проект и сравнивает по нему. |
«Форма:» в подсказке
Section titled “«Форма:» в подсказке”Там, где форма важна, окно пишет её прямо: строка форма: на фигуре и в подсказке палитры. По этой же форме считается, чем схема может закончиться: схема, отдающая объекты, из ячейки не зовётся — в ячейку уезжает текст и только текст.