Skip to content

Пакет fmt

В этой теме мы разберем, как происходит форматирование строк в Go.

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

Go предлагает отличную поддержку форматирования строк с помощью printf. Вот несколько примеров типичных задач форматирования строк.

Go предлагает несколько «глаголов», созданных для форматирования общих Go значений. Например, это выведет инстанс нашей point структуры.

Если значение является структурой, запись %+v выведет названия полей структуры.

Вариант %#v печатает синтаксическое представление Go, то есть фрагмент исходного кода, который будет генерировать это значение.

Для вывода типа значения используйте %T.

Форматирование логических значений не вызывает затруднений.

Возможно большое количество опций для форматирования целых чисел. Используй %d для стандартного десятеричного вывода.

Бинарный вывод.

Вывод символа, соответствующего заданному числу.

%x — шестнадцатиричное значение.

Также есть несколько вариантов форматирования чисел с плавающей точкой. Стандартный вывод %f.

%e и %E приводит число с плавающей точкой к экспоненциальному представлению.

Для стандартного вывода строк используй %s.

Для двойных ковычек, как в исходниках Go, используй %q.

Так же как и с целочисленными ранее, %x отображает строку в виде шестнадцатеричного исчисления с двумя символами вывода за каждый байт ввода.

Чтобы вывести ссылку на указатель, используй %p.

При форматировании чисел будет часто возникать желание контролировать ширину и точность получаемого значения. Чтобы указать ширину целого числа, используй число после %. По умолчанию результат будет выровнен по правому краю и дополнен пробелами.

Ты можешь указать ширину чисел с плавающей точкой, а также ограничить десятичную точность одновременно с помощью синтаксиса ширина.точность(6.2f).

Для выравнивания по левому краю используй флаг -.

Ты также можешь контролировать ширину при форматировании строк, особенно для обеспечения их выравнивания в табличном выводе. Стандартное выравнивание по правому краю.

Для выравнивания по левому краю используй флаг -.

До сих пор мы видели Printf, который печатает отформатированную строку в os.Stdout. Sprintf форматирует и возвращает строку, нигде не печатая.

Ты можешь отформатировать+вывести в io.Writers, используя Fprintf.

С полной версией статьи ты можешь ознакомиться по ссылке.

Отлично! Теперь ты знаешь, как пользоваться форматированием строк.

Рекомендуем ознакомиться со следующими материалами: