13. Переменные
Переменная — именованное место, куда сценарий что-то кладёт и откуда потом берёт. На карте её нет: она не привязана к шагу и принадлежит сценарию целиком.
Окно переменных
Состав переменных правится в отдельном окне — ссылка Переменные справа от вкладок панели.
Верхняя полоса — создание: имя, тип, скоуп, кнопка Добавить. Ниже — перечень того, что уже есть.
Имена уникальны и различают регистр: acc и Acc — две разные
переменные. Попытка завести второй acc не пройдёт, и окно скажет почему.
Тип и скоуп
- Тип
-
Строка, Число или Дата/время.
Строка — тип по умолчанию, и это не компромисс. Она самая общая: любой другой тип из строки преобразуется, а обратное верно не всегда. Ничего плохого не случится, если все переменные сценария будут строковыми.
Арифметика при этом работает: сложение двух строк, содержащих числа, даёт числовую операцию. Для склейки текста есть отдельная функция —
concat. Так что выбор типа не мешает считать; он мешает как раз наоборот: номер счёта, положенный в число, потеряет ведущий ноль, а DTMF может оказаться звёздочкой, которая в число не влезет. - Скоуп
-
где переменная живёт. Локальная — только внутри этого вызова, и это правильный выбор в подавляющем большинстве случаев. Остальные скоупы переживают вызов и видны шире; ими пользуются осознанно и редко. Подробнее — Переменная.
Тип и скоуп можно поменять и потом — прямо в строке перечня.
Сколько раз переменная упоминается
Колонка Упоминаний — самое полезное, что есть в этом окне.
Она считает не «сколько раз встретилось имя», а сколько свойств на переменную действительно ссылаются: поля-переменные, аргументы в режиме «переменная», вхождения имени в выражениях и шаблонах.
Ноль упоминаний подписан отдельно — не используется. Такая переменная почти наверняка осталась от прошлых правок: её можно удалить, ничего не сломав.
|
Перед тем как заводить новую переменную, стоит посмотреть в этот список.
|
Переименование
Клик по имени (или карандаш рядом) начинает правку. Введите новое имя, Enter — и редактор покажет, где старое имя встречается.
Для каждого вхождения видно, в каком компоненте оно найдено, в каком поле и как выглядит сама строка. Галочками отмечается, что заменять.
Автоматической замены без подтверждения не бывает — и не зря: имя переменной может встретиться в тексте, который к ней отношения не имеет. Например, в сообщении абоненту.
Поля, ссылающиеся на переменную по идентификатору, переименование переживают сами: там имя не хранится, и подтверждения им не нужно. Список показывает только текстовые вхождения — выражения и шаблоны.
Всё переименование — один шаг отмены: Ctrl+Z вернёт и имя, и все заменённые вхождения разом.
Удаление
Кнопка Удалить в строке. Перед удалением редактор скажет, сколько свойств на переменную ссылаются, и предупредит, что они будут очищены.
Что происходит:
-
поля-переменные и аргументы в режиме «переменная», указывавшие на неё, становятся пустыми;
-
имя в выражениях и шаблонах остаётся как есть — редактор не правит чужой текст. Оно будет подчёркнуто как неизвестное;
-
сама переменная исчезает из списка.
Всё это отменяется одним Ctrl+Z.
Выбор переменной в свойстве
Поля типа «переменная» — Результат в переменную, Буфер для DTMF, Причина ошибки в переменную — выбираются списком прямо в строке.
Начните печатать — список отберёт подходящие. Если такого имени ещё нет, вместо списка появится пункт Создать «имя»: он открывает окно переменных с уже подставленным именем. Так переменная заводится там, где впервые понадобилась, — и это самый удобный порядок.
|
Если поле ссылается на переменную, которой в списке нет (например, её удалили в другой вкладке), значение считается незаданным, а поле покажет имя с пометкой «отсутствует». Сценарий при этом не ломается. |