таблица с основными форматами Printf в Go
Шпаргалка по форматным строкам fmt.Printf
Шпаргалка по форматным строкам fmt.Printf
| Формат | Тип данных | Пример вывода | Описание | С # (если применимо) |
|---|---|---|---|---|
| Общие | ||||
%v | Любой | {John 25} | Универсальный формат | %#v → main.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 | Двоичное | %#b → 0b101010 (редко) |
| Символы | ||||
%c | rune | A | Символ по коду | — |
%U | rune | U+0041 | Код Unicode | %#U → U+0041 'A' |
%q | rune/string | 'A' / "A" | Кавычки вокруг значения | %#q → 'A' (для рун) |
| Строки | ||||
%s | string | Hello | Чистая строка | — |
%x | string/[]byte | 48656c6c6f | Шестнадцатеричный дамп | %#x → 0x48656c6c6f |
| Плавающие | ||||
%f | float64 | 3.141593 | Обычный формат | — |
%g | float64 | 3.14159 | Автовыбор (%f или %e) | %#g → Без изменений |
%e | float64 | 3.141593e+00 | Экспоненциальный формат | — |
| Указатели | ||||
%p | Указатель | 0xc0000180a8 | Адрес памяти | %#p → c0000180a8 (без 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для строк оставляет двойные кавычки, для рун — одинарные.