Функция fmt.Fprintf

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

Синтаксис

gofmt.Fprintf(w, format, a...)

Пример с выводом в стандартный вывод

Давайте выведем форматированную строку в стандартный вывод с помощью fmt.Fprintf:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  name := "Alice"
  age := 30
  fmt.Fprintf(os.Stdout, "Name: %s, Age: %d", name, age)
}

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

go"Name: Alice, Age: 30"

Пример с записью в файл

Давайте запишем форматированные данные в файл с помощью fmt.Fprintf:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  file, err := os.Create("data.txt")
  if err != nil {
    fmt.Println("Error creating file:", err)
    return
  }
  defer file.Close()
  
  value := 12345
  fmt.Fprintf(file, "Number: %d, Hex: %x", value, value)
}

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

go"Number: 12345, Hex: 3039"

Пример с записью в буфер

Давайте запишем форматированную строку в буфер с помощью fmt.Fprintf:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  var buf bytes.Buffer
  items := []string{"a", "b", "c", "d", "e"}
  
  for i, item := range items {
    fmt.Fprintf(&buf, "Index: %d, Value: %s\n", i, item)
  }
  
  fmt.Print(buf.String())
}

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

go"Index: 0, Value: a
Index: 1, Value: b
Index: 2, Value: c
Index: 3, Value: d
Index: 4, Value: e
"

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

  • функцию fmt.Fprint,
    которая записывает строку без форматирования
  • функцию fmt.Fprintln,
    которая записывает строку с переносом строки
  • функцию fmt.Sprintf,
    которая форматирует строку без вывода в поток
  • функцию fmt.Printf,
    которая форматирует вывод в стандартный поток