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

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

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

Формат Тип данных Пример вывода Описание С # (если применимо)
Общие
%v Любой {John 25} Универсальный формат %#vmain.Person{Name:"John"}
%+v Структуры {Name:John Age:25} С именами полей
%T Любой string Тип переменной
%% % Вывод знака %
Целые числа
%d int 42 Десятичное число
%#x int 0x2a Шестнадцатеричное с 0x Без #: 2a
%#o int 052 Восьмеричное с 0 Без #: 52
%b int 101010 Двоичное %#b0b101010 (редко)
Символы
%c rune A Символ по коду
%U rune U+0041 Код Unicode %#UU+0041 'A'
%q rune/string 'A' / "A" Кавычки вокруг значения %#q'A' (для рун)
Строки
%s string Hello Чистая строка
%x string/[]byte 48656c6c6f Шестнадцатеричный дамп %#x0x48656c6c6f
Плавающие
%f float64 3.141593 Обычный формат
%g float64 3.14159 Автовыбор (%f или %e) %#g → Без изменений
%e float64 3.141593e+00 Экспоненциальный формат
Указатели
%p Указатель 0xc0000180a8 Адрес памяти %#pc0000180a8 (без 0x)
Ширина/Точность
%5d int 42 Фиксированная ширина (5 символов)
%05d int 00042 Дополнение нулями
%.2f float64 3.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 для строк оставляет двойные кавычки, для рун — одинарные.