Перейти к основному содержимому

Глаголы форматирования в Go

Printf() решает, как вывести каждое значение, читая небольшие заполнители, которые называются глаголами форматирования. В Go их довольно много, и разделы ниже группируют их по виду данных, с которым они работают.


Общие глаголы форматирования

Некоторые глаголы не привязаны к одному виду данных. Они работают со значением любого типа:

  • %v - выводит значение в стиле Go по умолчанию
  • %#v - выводит значение так, как вы написали бы его в исходном коде на Go
  • %T - выводит тип значения, а не само значение
  • %% - выводит сам знак процента

Пример

Prompt
Используйте глаголы форматирования %v, %#v, %T и %% вместе с Printf для разных типов данных.
Вывод: Программа на Go и захваченный вывод

Глаголы форматирования для целых чисел

У целых чисел самый богатый набор возможностей. Вы можете выбрать систему счисления, показать знак или управлять шириной результата:

  • %b - двоичное (основание 2)
  • %d - десятичное (основание 10)
  • %+d - десятичное, всегда со знаком
  • %o - восьмеричное (основание 8)
  • %O - восьмеричное, начинается с 0o
  • %x - шестнадцатеричное (основание 16) строчными буквами
  • %X - шестнадцатеричное (основание 16) заглавными буквами
  • %#x - шестнадцатеричное, начинается с 0x
  • %4d - ширина не менее 4 символов, дополняется пробелами слева
  • %-4d - ширина не менее 4 символов, дополняется пробелами справа
  • %04d - ширина не менее 4 символов, дополняется ведущими нулями

Пример

Prompt
Используйте глаголы форматирования для целых чисел %b, %d, %+d, %o, %O, %x, %X и %#x вместе с Printf.
Вывод: Программа на Go и захваченный вывод

Глаголы форматирования для строк

У текста есть свои глаголы, в том числе те, что добавляют кавычки или отводят определённое количество места:

  • %s - текст в точности как есть
  • %q - текст в двойных кавычках
  • %8s - текст, выровненный по правому краю в поле шириной 8 символов
  • %-8s - текст, выровненный по левому краю в поле шириной 8 символов
  • %x - шестнадцатеричный дамп байтов текста

Пример

Prompt
Используйте глаголы форматирования для строк %s, %q, %8s, %-8s и %x вместе с Printf.
Вывод: Программа на Go и захваченный вывод

Глаголы форматирования для логических значений

Логическим значениям нужен всего один глагол:

  • %t - выводит либо true, либо false

Пример

Prompt
Используйте глагол форматирования %t, чтобы вывести логическое значение.
Вывод: Программа на Go и захваченный вывод

Глаголы форматирования для чисел с плавающей точкой

Для чисел с дробной частью эти глаголы задают запись, ширину и количество знаков после точки:

  • %e - научная нотация с e
  • %f - обычная десятичная запись без экспоненты
  • %.2f - две цифры после точки, без заданной ширины
  • %6.2f - поле шириной 6 символов с двумя цифрами после точки
  • %g - добавляет экспоненту только при необходимости и отбрасывает лишние цифры

Пример

Prompt
Используйте глаголы форматирования для чисел с плавающей точкой %e, %f, %.2f, %6.2f и %g вместе с Printf.
Вывод: Программа на Go и захваченный вывод