Когда дело доходит до форматирования вывода в Go, строка форматирования — ваш лучший друг. Он позволяет вам управлять представлением данных, определяя заполнители и указывая, как следует форматировать значения. В этой статье мы рассмотрим различные методы и приемы использования возможностей строк форматирования в Go, а также приведем множество примеров кода.
- Printf и Sprintf:
Наиболее распространенный метод использования строк форматирования в Go — с помощью функцийPrintfиSprintf. С помощьюPrintfвы можете форматировать и печатать выходные данные непосредственно в стандартный вывод, аSprintfпозволяет сохранять отформатированную строку в переменной.
name := "John"
age := 30
fmt.Printf("Name: %s, Age: %d\n", name, age)
output := fmt.Sprintf("Name: %s, Age: %d\n", name, age)
- Глаголы форматирования.
Go предоставляет широкий спектр глаголов форматирования, которые можно использовать в строках форматирования для форматирования различных типов данных. Вот несколько часто используемых глаголов:
%d: форматирует целое число.%f: форматирует число с плавающей запятой.%s: форматирует строку.%t: форматирует логическое значение.
count := 42
pi := 3.14159
message := "Hello, Go!"
fmt.Printf("Count: %d, Pi: %f, Message: %s\n", count, pi, message)
- Ширина и точность поля.
Вы можете указать ширину поля и точность форматированных значений в строке формата. Ширина поля определяет минимальную ширину поля, а точность определяет количество десятичных знаков для чисел с плавающей запятой.
age := 30
pi := 3.14159
fmt.Printf("Age: %5d\n", age) // Prints "Age: 30"
fmt.Printf("Pi: %.2f\n", pi) // Prints "Pi: 3.14"
- Заполнение и выравнивание.
Строки формата Go также позволяют указать заполнение и выравнивание для форматированных значений. Вы можете использовать флаг-для выравнивания по левому краю или флаг+для принудительного использования знака.
name := "John"
age := 30
fmt.Printf("|%10s|%5d|\n", name, age) // Prints "| John| 30|"
fmt.Printf("|%-10s|%+5d|\n", name, age) // Prints "|John | +30|"
- Форматирование даты и времени.
Форматирование даты и времени является общим требованием во многих приложениях. Для этой цели в Go предусмотрены собственные уникальные глаголы формата.
now := time.Now()
fmt.Printf("Current time: %s\n", now.Format("2006-01-02 15:04:05"))
Понимание и использование строк формата в Go открывает мир возможностей для форматирования вывода именно так, как вы хотите. Используя различные глаголы формата, ширину поля, точность, отступы и выравнивание, вы можете создавать визуально привлекательные и хорошо структурированные выходные данные. Так что смело экспериментируйте со строками формата, чтобы ваши программы на Go стали лучше!