Присваивание и копирование
Положить число, текст или содержимое другой переменной — и чем копия отличается от оригинала
set — первая инструкция, которую ставит почти любая программа: прежде чем что-то считать,
надо откуда-то взять начальные числа.
Нажмите «шаг» четыре раза и смотрите в таблицу.
Что можно положить
Заголовок раздела «Что можно положить»Число пишется как есть: 5, -0.25, 1e6. Точка, а не запятая; знак минуса прижат
к числу.
Текст — в двойных кавычках: "медь". В таблице переменных у него тип string, и с ним
работают не все инструкции: сложить текст с числом нельзя, зато можно напечатать.
Занятое имя — @copper, @this, @time. Это константы игры, о них
следующий урок.
Другая переменная — тогда значение копируется. Об этом дальше.
Копия не следит за оригиналом
Заголовок раздела «Копия не следит за оригиналом»Третья строка примера — set копия запас, и в этот момент в запас лежит пятёрка.
Четвёртая меняет запас на 99, но копия остаётся пятёркой.
Это и есть главное правило: копируется значение, а не связь. В mlog нет «ссылки
на переменную», нет способа сказать «пусть эта переменная всегда равна той». Каждая строка
set — разовое действие: взять то, что лежит справа сейчас, и положить налево.
А если справа объект
Заголовок раздела «А если справа объект»Значение бывает не только числом. Если в переменной лежит здание или предмет, копируется
именно оно: set другой container1 кладёт в другой тот же самый контейнер.
Копией самого контейнера это не делает — контейнер один, просто на него теперь смотрят две переменные. Как и с числом, копирование разовое: снесут контейнер — в обеих переменных останется здание, которого больше нет.
Чего set не умеет
Заголовок раздела «Чего set не умеет»- Считать.
set итог запас + 1записать нельзя: сложение — этоop. - Писать в занятые имена.
set @copper 7не делает ничего. Единственное исключение —@counter, запись в который означает переход. - Заводить переменную заранее. Строки «объявить переменную» в mlog нет: переменная
появляется от первого упоминания, и
set— просто первое место, где это обычно случается.
Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.