Klatch.media

Обновления Roblox

В Luau тестируют объявление переменных прямо в условии if

Синтаксис if local и if const доступен через бета-функции Studio. Пока поддерживается одна переменная и одно значение.

Граф анимации в Roblox Studio, иллюстрация инструментов разработки
Roblox / DevForum

Roblox начала бета-тест синтаксиса if local и if const в языке Luau. Обновление опубликовано 6 октября. Новые конструкции позволяют объявить переменную непосредственно внутри условия if или elseif, а затем использовать найденное значение в соответствующей ветке. Функция включается в Studio через пункт If Local/Const Bindings в Beta Features.

В примере Roblox скрипт последовательно проверяет наличие персонажа, Humanoid и его корневой части. С новой записью получение значения и проверка объединены в одном условии. В прежнем варианте разработчику требовалось сначала отдельно объявить каждую локальную переменную, а затем написать if для проверки того, что нужный объект существует.

Вариант if const использует тот же способ связывания значения с условием. Компания показала его на получении игрока по модели персонажа. После успешной проверки код внутри ветки обращается к имени найденного игрока. Объявление содержит примеры обеих конструкций, поэтому автор может сравнить записи на одинаковой операции поиска.

Новый синтаксис также работает внутри условных выражений. В опубликованном примере переменная name получает имя игрока, если поиск дал результат, или строку Unknown в противном случае. Отдельный пример показывает уточнение типа: значение, которое могло отсутствовать, внутри успешной ветки рассматривается как найденный объект Player.

У бета-версии есть ограничения. Поддерживаются только одно имя и одно значение, поэтому одновременно связать результаты pcall, например статус и возвращённые данные, пока нельзя. Составные условия с несколькими объявлениями тоже недоступны. Roblox допускает их поддержку в будущем, но конкретный срок в сообщении не указан; подробности решения вынесены в документ RFC.