Перейти к содержимому

Format

Шаблон целиком, а не текст кусочками: format вставляет значения в готовую надпись

простоНужно знать: Текстовый буфер, Print Flush

print собирает надпись кусочками, и на длинной фразе это становится неудобно: текст разбит по строкам программы, и что получится в итоге — видно только в голове.

format работает наоборот: сначала в буфер кладут шаблон целиком, а потом подставляют в него значения.

тик 0
Информация0
=
у
Печать1
Формат2
Формат3
Вывод печати4
Ждать5
@counter0number
медьnullnull
textBufferstring

Нажмите «пуск». Под блоком сообщений появится меди 120 из 300: шаблон меди {0} из {1} попал в буфер первым, а два format заменили в нём места по очереди.

Подстановочное место выглядит как {0}: фигурная скобка, цифра от 0 до 9, закрывающая скобка. Ни пробелов, ни чисел больше девяти — такое место просто не считается местом, и format его не увидит.

Выбирается наименьший номер, а не первое место

Заголовок раздела «Выбирается наименьший номер, а не первое место»

Это правило удивляет. format ищет по буферу место с самым маленьким номером, а не то, которое встретилось первым.

Для шаблона {1} и {0} первый format подставит значение в конец — туда, где {0}. Порядок подстановок задаётся номерами, а не расположением в строке.

Заменённое место пропадает из буфера, поэтому следующий format найдёт следующее по номеру. Двух значений в одно место не положить, а лишний format без свободных мест ничего не сделает.

Что в буфере format 120 даёт
меди {0} меди 120
{1} и {0} {1} и 120
меди 0 меди 0 — места нет, значение потеряно
пусто пусто — подставлять некуда

Значения превращаются в текст по тем же правилам, что и у print: целое печатается без дробной части, здание — именем блока, пустота — словом null. Про это урок «Что во что печатается».

Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.