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

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

Глагол форматирования %v в пакете fmt выводит значение переменной в формате, который подходит для этого типа по умолчанию. Это универсальный глагол, который работает с любыми типами данных: строками, числами, слайсами, структурами и другими. Он используется в функциях fmt.Printf, fmt.Sprintf и подобных.

Для пользовательских типов глагол %v вызывает метод String, если он определен. Это позволяет управлять выводом своих структур.

Синтаксис

fmt.Printf("%v", value)

Пример с числами

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

package main import "fmt" func main() { num := 42 fmt.Printf("%v\n", num) negative := -10 fmt.Printf("%v\n", negative) }

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

42 -10

Пример со строками

Глагол %v выводит строки без изменений:

package main import "fmt" func main() { str := "abcde" fmt.Printf("%v\n", str) empty := "" fmt.Printf("%v\n", empty) }

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

abcde

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

Слайсы выводятся в квадратных скобках с элементами через пробел:

package main import "fmt" func main() { numbers := []int{1, 2, 3, 4, 5} fmt.Printf("%v\n", numbers) letters := []string{"a", "b", "c", "d", "e"} fmt.Printf("%v\n", letters) }

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

[1 2 3 4 5] [a b c d e]

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

Структуры выводятся в фигурных скобках с именами полей и их значениями:

package main import "fmt" type Person struct { Name string Age int } func main() { person := Person{Name: "John", Age: 30} fmt.Printf("%v\n", person) }

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

{John 30}

Пример с пользовательским типом

Для пользовательских типов можно переопределить вывод через метод String:

package main import "fmt" type Point struct { X, Y int } func (p Point) String() string { return fmt.Sprintf("Point(%d, %d)", p.X, p.Y) } func main() { p := Point{X: 5, Y: 10} fmt.Printf("%v\n", p) }

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

Point(5, 10)

Пример с разными типами

Глагол %v адаптируется под каждый тип:

package main import "fmt" func main() { integer := 123 text := "hello" boolean := true floatNum := 3.14 fmt.Printf("%v\n", integer) fmt.Printf("%v\n", text) fmt.Printf("%v\n", boolean) fmt.Printf("%v\n", floatNum) }

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

123 hello true 3.14

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

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