Функция fmt.Sprintf

Функция fmt.Sprintf возвращает строку, сформатированную по указанному шаблону. Первым параметром она принимает строку-шаблон с плейсхолдерами, а затем переменное количество аргументов, которые должны подставляться на место этих плейсхолдеров. Функция полезна для создания строк с динамическими данными, например, для формирования сообщений или записи в лог.

Синтаксис

gofmt.Sprintf(format, args...)

Пример

Давайте с помощью fmt.Sprintf сформируем строку, подставив в шаблон целое число и строку:

gopackage main

import "fmt"

func main() {
  name := "Alice"
  age := 30
  res := fmt.Sprintf("Name: %s, Age: %d", name, age)
  fmt.Println(res)
}

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

go"Name: Alice, Age: 30"

Пример

Давайте используем несколько плейсхолдеров разных типов для форматирования строки:

gopackage main

import "fmt"

func main() {
  x := 123
  y := 45.678
  z := true
  res := fmt.Sprintf("x=%d, y=%.2f, z=%t", x, y, z)
  fmt.Println(res)
}

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

go"x=123, y=45.68, z=true"

Пример

Давайте сформируем строку для вывода слайса строк с использованием fmt.Sprintf:

gopackage main

import "fmt"

func main() {
  items := []string{"a", "b", "c", "d", "e"}
  res := fmt.Sprintf("Items: %v", items)
  fmt.Println(res)
}

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

go"Items: [a b c d e]"

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

  • функцию fmt.Printf,
    которая выводит сформатированную строку в стандартный вывод
  • функцию fmt.Sprint,
    которая преобразует аргументы в строку без форматирования
  • функцию fmt.Sprintln,
    которая объединяет аргументы в строку с пробелами
  • функцию fmt.verb-v,
    которая описывает формат %v для вывода значения по умолчанию