Назад к урокам

Форматирование текста с fmt в Go

Урок объясняет работу пакета fmt в Go: форматированный вывод с Printf, создание строк через Sprintf, вывод в потоки через Fprintf, использование форматных вербов и escape-последовательностей.

Начинающий10 min

📝 Форматирование текста с пакетом 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 делает вывод гибким, мощным и удобным.