📝 Форматирование текста с пакетом fmt в Go
Пакет fmt - один из самых используемых в Go. Он предоставляет функции для вывода текста в терминал, форматирования строк, работы с потоками данных и создания строк с помощью шаблонов.
📌 Основные функции fmt
Пакет включает три основные группы функций:
Print / Println
Используются для простого вывода без форматирования:
fmt.Print("hello")
fmt.Println("hello") // добавляет перевод строки
Printf - форматированный вывод
fmt.Printf("Value: %v", 42)
Эта функция использует форматные вербы - специальные маркеры, которые определяют, как выводить данные.
🔠 Форматные вербы
На слайде (страница 3) показаны основные вербы:
Верб Описание
%v вывод по умолчанию
%t boolean - "true" или "false"
%c символ
%X шестнадцатеричное число (верхний регистр)
%U вывод Unicode в формате U+XXXX
%e научная нотация
Пример:
fmt.Printf("Hex: %X", 255) // Hex: FF
fmt.Printf("Rune: %U", 'Ж') // U+0416
🔐 Escape-последовательности
Слайд 4 показывает специальные последовательности для символов:
Последовательность Описание
\\ обратная косая черта
\' одиночная кавычка
\" двойная кавычка
\n новая строка
\u / \U Unicode (2 / 4 байта)
\x байты в hex
Примеры:
fmt.Println("Line1\nLine2")
fmt.Println("Quote: \'Hello\'")
fmt.Println("Unicode: \u0416")
🧩 Sprintf --- форматирование строки без вывода
Вместо печати --- возвращает строку:
msg := fmt.Sprintf("Value: %v", 42)
fmt.Println(msg)
📤 Fprintf --- вывод в поток данных
Можно выводить в файл, сеть или буфер:
fmt.Fprintf(os.Stdout, "Hello %v", 99)
🎯 Пример из слайда: функция surround
На последнем слайде показан пример использования Sprintf:
func surround(msg string, left, right rune) string {
return fmt.Sprintf("%c%s%c", left, msg, right)
}
surrounded := surround("this message", '(', ')')
fmt.Println(surrounded)
// (this message)
📘 Итоги
fmtпозволяет выводить текст, форматировать строки и работать с потоками.Printfиспользует вербы для форматирования данных.Sprintfсоздаёт строки, аFprintfвыводит в любой поток.- Escape-последовательности помогают вставлять специальные символы.
- Форматирование через fmt делает вывод гибким, мощным и удобным.