Глаголы форматирования в Go
Printf() решает, как вывести каждое значение, читая небольшие заполнители, которые называются глаголами форматирования. В Go их довольно много, и разделы ниже группируют их по виду данных, с которым они работают.
Общие глаголы форматирования
Некоторые глаголы не привязаны к одному виду данных. Они работают со значением любого типа:
%v- выводит значение в стиле Go по умолчанию%#v- выводит значение так, как вы написали бы его в исходном коде на Go%T- выводит тип значения, а не само значение%%- выводит сам знак процента
Пример
Prompt
Используйте глаголы форматирования %v, %#v, %T и %% вместе с Printf для разных типов данных.
Вывод: Программа на Go и захваченный вывод
main.go
package main
import ("fmt")
func main() {
var i = 15.5
var txt = "Привет, мир!"
fmt.Printf("%v\n", i)
fmt.Printf("%#v\n", i)
fmt.Printf("%v%%\n", i)
fmt.Printf("%T\n", i)
fmt.Printf("%v\n", txt)
fmt.Printf("%#v\n", txt)
fmt.Printf("%T\n", txt)
}
Глаголы форматирования для целых чисел
У целых чисел самый богатый набор возможностей. Вы можете выбрать систему счисления, показать знак или управлять шириной результата:
%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 и захваченный вывод
main.go
package main
import ("fmt")
func main() {
var i = 15
fmt.Printf("%b\n", i)
fmt.Printf("%d\n", i)
fmt.Printf("%+d\n", i)
fmt.Printf("%o\n", i)
fmt.Printf("%O\n", i)
fmt.Printf("%x\n", i)
fmt.Printf("%X\n", i)
fmt.Printf("%#x\n", i)
fmt.Printf("%4d\n", i)
fmt.Printf("%-4d\n", i)
fmt.Printf("%04d\n", i)
}
Глаголы форматирования для строк
У текста есть свои глаголы, в том числе те, что добавляют кавычки или отводят определённое количество места:
%s- текст в точности как есть%q- текст в двойных кавычках%8s- текст, выровненный по правому краю в поле шириной 8 символов%-8s- текст, выровненный по левому краю в поле шириной 8 символов%x- шестнадцатеричный дамп байтов текста
Пример
Prompt
Используйте глаголы форматирования для строк %s, %q, %8s, %-8s и %x вместе с Printf.
Вывод: Программа на Go и захваченный вывод
main.go
package main
import ("fmt")
func main() {
var txt = "Привет"
fmt.Printf("%s\n", txt)
fmt.Printf("%q\n", txt)
fmt.Printf("%8s\n", txt)
fmt.Printf("%-8s\n", txt)
fmt.Printf("%x\n", txt)
}
Глаголы форматирования для логических значений
Логическим значениям нужен всего один глагол:
%t- выводит либоtrue, либоfalse
Пример
Prompt
Используйте глагол форматирования %t, чтобы вывести логическое значение.
Вывод: Программа на Go и захваченный вывод
main.go
package main
import ("fmt")
func main() {
var i = true
fmt.Printf("%t\n", i)
}
Глаголы форматирования для чисел с плавающей точкой
Для чисел с дробной частью эти глаголы задают запись, ширину и количество знаков после точки:
%e- научная нотация с e%f- обычная десятичная запись без экспоненты%.2f- две цифры после точки, без заданной ширины%6.2f- поле шириной 6 символов с двумя цифрами после точки%g- добавляет экспоненту только при необходимости и отбрасывает лишние цифры
Пример
Prompt
Используйте глаголы форматирования для чисел с плавающей точкой %e, %f, %.2f, %6.2f и %g вместе с Printf.
Вывод: Программа на Go и захваченный вывод
main.go
package main
import ("fmt")
func main() {
var i = 3.141
fmt.Printf("%e\n", i)
fmt.Printf("%f\n", i)
fmt.Printf("%.2f\n", i)
fmt.Printf("%6.2f\n", i)
fmt.Printf("%g\n", i)
}