РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
646 of 1593 menu

Глагол форматирования %#v

Глагол форматирования %#v выводит Go-синтаксическое представление значения. В отличие от обычного %v, этот глагол включает имя типа для структур, а также выводит поля с их именами. Для базовых типов результат аналогичен использованию литералов в коде Go. Первым параметром в функцию форматирования передается само значение, которое нужно вывести.

Синтаксис

fmt.Printf("%#v", value)

Пример со строкой и числом

Давайте выведем строку и целое число с помощью глагола %#v:

package main import "fmt" func main() { str := "abcde" num := 12345 fmt.Printf("string: %#v\n", str) fmt.Printf("number: %#v\n", num) }

Результат выполнения кода:

"string: \"abcde\"" "number: 12345"

Как видно, строка выводится в двойных кавычках, а число — как обычный литерал.

Пример со слайсом

Давайте выведем слайс строк с помощью глагола %#v:

package main import "fmt" func main() { slice := []string{"a", "b", "c", "d", "e"} fmt.Printf("%#v\n", slice) }

Результат выполнения кода:

"[]string{\"a\", \"b\", \"c\", \"d\", \"e\"}"

Глагол %#v показывает тип слайса и его элементы в формате Go-литерала.

Пример со структурой

Давайте создадим структуру и выведем ее с помощью %#v:

package main import "fmt" type User struct { Name string Age int } func main() { user := User{Name: "Alice", Age: 30} fmt.Printf("%#v\n", user) }

Результат выполнения кода:

"main.User{Name:\"Alice\", Age:30}"

В отличие от обычного %v, глагол %#v выводит имя структуры (main.User) и имена полей (Name и Age), что очень удобно для отладки.

Пример с указателем

Давайте посмотрим, как %#v обрабатывает указатели:

package main import "fmt" func main() { num := 42 ptr := &num fmt.Printf("%#v\n", ptr) }

Результат выполнения кода:

"(*int)(0xc000012088)"

Глагол %#v показывает тип указателя и его значение (адрес в памяти).

Смотрите также

  • глагол %v,
    который выводит значение в стандартном формате
  • глагол %+v,
    который выводит значение с именами полей для структур
  • функцию fmt.Printf,
    которая форматирует и выводит строку
  • функцию fmt.Sprintf,
    которая возвращает отформатированную строку
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить