Число, объект и текст
В переменной либо число, либо объект — и от этого зависит, что с ней можно сделать
В переменной mlog лежит либо число, либо объект. Всё, что не число, — объект: строка,
предмет, блок, юнит, команда. Отдельный вид объекта — пустота, null, и ей отведён
свой урок.
Справа от значения таблица показывает вид: number, string, content, null. Это тот же
столбец, что в окне «Переменные» в самой игре, и цвета те же.
Вид приходит вместе со значением
Заголовок раздела «Вид приходит вместе со значением»Переменная не хранит вид сама по себе. Записали число — стало число; записали @copper —
стал объект. Одна и та же переменная за жизнь программы бывает и тем, и другим, и никто
на это не пожалуется.
Объявлять вид заранее негде и незачем: в mlog нет ни типов в объявлении, ни проверки при записи. Единственное место, где вид виден, — таблица переменных.
Объект в арифметике — это единица
Заголовок раздела «Объект в арифметике — это единица»Числа считаются как числа. А если в арифметику попал объект, игра не разбирается, что это:
op add два @copper 1— 2, потому что медь как число это единица;- то же самое выйдет с любым зданием, юнитом или строкой;
- и только
nullдаёт ноль — об этом следующий урок.
Правило простое: любой объект в числовом контексте равен единице, пустота — нулю. Это не «преобразование типа», а именно правило, и другого способа получить число из объекта нет.
Строка — не текст для расчётов
Заголовок раздела «Строка — не текст для расчётов»"медь" — это строка: с ней работают print, format и сравнения, но не арифметика.
Сложить строку с числом можно, только результат будет не тем, чего ждёшь: строка пойдёт
в расчёт как объект, то есть как единица.
Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.