таблица с основными форматами Printf в Go

Шпаргалка по форматным строкам fmt.Printf

Шпаргалка по форматным строкам fmt.Printf

ФорматТип данныхПример выводаОписаниеС # (если применимо)
Общие
%vЛюбой{John 25}Универсальный формат%#vmain.Person{Name:"John"}
%+vСтруктуры{Name:John Age:25}С именами полей
%TЛюбойstringТип переменной
%%%Вывод знака %
Целые числа
%dint42Десятичное число
%#xint0x2aШестнадцатеричное с 0xБез #: 2a
%#oint052Восьмеричное с 0Без #: 52
%bint101010Двоичное%#b0b101010 (редко)
Символы
%cruneAСимвол по коду
%UruneU+0041Код Unicode%#UU+0041 'A'
%qrune/string'A' / "A"Кавычки вокруг значения%#q'A' (для рун)
Строки
%sstringHelloЧистая строка
%xstring/[]byte48656c6c6fШестнадцатеричный дамп%#x0x48656c6c6f
Плавающие
%ffloat643.141593Обычный формат
%gfloat643.14159Автовыбор (%f или %e)%#g → Без изменений
%efloat643.141593e+00Экспоненциальный формат
Указатели
%pУказатель0xc0000180a8Адрес памяти%#pc0000180a8 (без 0x)
Ширина/Точность
%5dint42Фиксированная ширина (5 символов)
%05dint00042Дополнение нулями
%.2ffloat643.14Ограничение знаков после точки

Примеры использования

fmt.Printf("|%#v|%5d|%05d|\n", struct{ X int }{1}, 42, 42) 
// |struct { X int }{X:1}|   42|00042|

fmt.Printf("|%#x|%#U|\n", 42, 'A') 
// |0x2a|U+0041 'A'|

⚠️ Особенности

  • Флаг # работает только с %v, %x, %X, %o, %U, %p, %q.
  • Для %g, %s, %d и других — игнорируется.
  • %#q для строк оставляет двойные кавычки, для рун — одинарные.