Текстовый буфер
Строка собирается по кусочкам и лежит внутри процессора, пока её не отдадут наружу
У каждого процессора есть текстовый буфер — строка, в которую print дописывает значения
одно за другим. Пока она внутри, её никто не видит: ни игрок, ни соседние блоки.
Нажмите «шаг» пять раз и смотрите на нижнюю строку таблицы: в буфере соберётся
меди: 120 из 300. Четыре print — четыре куска, склеенных в том порядке, в каком
выполнялись строки.
Склейки строк в языке нет
Заголовок раздела «Склейки строк в языке нет»Привычного "меди: " + медь в mlog не бывает: op add со строкой даёт не строку, а число.
Соединять текст умеет только буфер, и делает он это единственным способом — по кусочку
за инструкцию.
Отсюда обычный вид такой программы:
print "меди: "print медьprint " из "print 300Четыре строки ради одной надписи — это нормально. Если кусков становится много, на помощь
приходит format: он подставляет значения в готовый шаблон.
Буфер не бесконечен
Заголовок раздела «Буфер не бесконечен»В нём помещается 400 символов. Всё, что не влезло, просто не дописывается: ошибки не будет, предупреждения тоже — в конце строки окажется обрезанный кусок.
Четыреста символов — это много для надписи и мало для отчёта. Если печатать в цикле, буфер переполнится незаметно, и на дисплее или в блоке появится ровно первая часть.
Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.