Функция fmt.Fprint

Функция fmt.Fprint записывает форматированный вывод в любой объект, реализующий интерфейс io.Writer. В первый параметр передается объект-приемник данных, в последующие параметры передаются значения, которые нужно записать. Функция возвращает количество записанных байт и ошибку, если она произошла. В отличие от fmt.Fprintln, эта функция не добавляет символ новой строки в конце вывода.

Синтаксис

gofmt.Fprint(w io.Writer, a ...interface{}) (n int, err error)

Пример

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

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  res, err := fmt.Fprint(os.Stdout, "Hello, World!")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println("\nWritten bytes:", res)
}

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

go"Hello, World!"
"Written bytes: 13"

Пример

Давайте запишем строку в буфер bytes.Buffer:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  var buf bytes.Buffer
  res, err := fmt.Fprint(&buf, "Hello, World!")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println("Buffer content:", buf.String())
  fmt.Println("Written bytes:", res)
}

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

go"Buffer content: Hello, World!"
"Written bytes: 13"

Пример

Давайте запишем несколько значений разных типов:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  var buf bytes.Buffer
  name := "John"
  age := 30
  score := 95.5

  res, err := fmt.Fprint(&buf, "Name: ", name, ", Age: ", age, ", Score: ", score)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }

  fmt.Println("Result:", buf.String())
  fmt.Println("Written bytes:", res)
}

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

go"Result: Name: John, Age: 30, Score: 95.5"
"Written bytes: 38"

Пример

Давайте запишем данные в файл:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  file, err := os.Create("output.txt")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  defer file.Close()

  res, err := fmt.Fprint(file, "This is a test string")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }

  fmt.Println("Written", res, "bytes to file")
}

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

go"Written 22 bytes to file"

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

  • функцию fmt.Fprintln,
    которая записывает данные с добавлением новой строки
  • функцию fmt.Fprintf,
    которая записывает форматированные данные по шаблону
  • функцию fmt.Print,
    которая записывает данные в стандартный вывод
  • функцию fmt.Sprint,
    которая возвращает форматированную строку, а не записывает в io.Writer