Функция bytes.NewBuffer

Функция bytes.NewBuffer создает новый буфер типа *bytes.Buffer, инициализированный строкой, переданной в качестве аргумента. Буфер содержит байтовый срез, который может быть изменен без создания нового буфера. В первый параметр функция принимает строку, которую необходимо записать в буфер.

Синтаксис

gobytes.NewBuffer(str)

Пример

Давайте создадим буфер из строки "abcde" и выведем его содержимое:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  buf := bytes.NewBuffer("abcde")
  fmt.Println(buf.String())
}

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

go"abcde"

Пример

Давайте создадим буфер из строки "12345" и запишем в него дополнительные данные:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  buf := bytes.NewBuffer("12345")
  buf.WriteString("67890")
  fmt.Println(buf.String())
}

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

go"1234567890"

Пример

Давайте создадим буфер из строки "abcde" и прочитаем из него данные в байтовый срез:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  buf := bytes.NewBuffer("abcde")
  b := make([]byte, 3)
  _, err := buf.Read(b)
  if err != nil {
    fmt.Println("Error reading")
    return
  }
  fmt.Println(string(b))
}

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

go"abc"

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

  • функцию bytes.NewBufferString,
    которая создает буфер из строки аналогичным образом
  • тип bytes.Buffer,
    который предоставляет методы для работы с буфером
  • метод bytes.Buffer.String,
    который возвращает содержимое буфера как строку
  • метод bytes.Buffer.Bytes,
    который возвращает содержимое буфера как срез байтов