Метки вместо номеров строк
Номер строки в jump — не обязанность, а выбор. В текстовой записи цель можно назвать по имени
set счёт 0снова:op add счёт счёт 1jump снова lessThan счёт 5set готово 1Строка снова: — это метка. Она не инструкция: номера строки на неё не тратится,
процессор её не выполняет, а jump снова ведёт на строку сразу после неё.
Такую программу разбирает сама игра: метки понимает её текстовый разбор, а не какой-то внешний редактор. Скопируйте пример в окно «Правка кода» — он заработает.
Как это выглядит
Заголовок раздела «Как это выглядит»| Что | Как пишется |
|---|---|
| объявление метки | одиночное слово с двоеточием в конце: снова: |
| переход на неё | имя метки вместо номера: jump снова always |
Правила простые:
- метка занимает строку целиком; ничего, кроме неё, в строке быть не должно;
- имя может быть любым, в том числе русским;
- две метки с одним именем — ошибка разбора, а не молчаливая подмена;
- переход на несуществующую метку — тоже ошибка, и игра о ней скажет.
Зачем это
Заголовок раздела «Зачем это»Номер строки — хрупкая ссылка. Вставили строку в середину программы — и все переходы ниже указывают не туда, причём молча: программа продолжает работать, просто неправильно.
Метка привязана к месту, а не к номеру. Она же читается: jump проверитьЗапас говорит
о намерении, а jump 17 — только о строке.
Где это пригождается
Заголовок раздела «Где это пригождается»- длинные программы, которые пишут в стороннем редакторе и вставляют целиком;
- программы, собранные чем-то другим — например, компилятором в mlog: там метки единственный разумный способ ссылаться на место;
- переносимые куски: кусок с метками можно вставить в середину чужой программы, и ничего не съедет.
Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.