Метод bytes.Buffer.WriteString

Метод bytes.Buffer.WriteString записывает содержимое строки в буфер типа bytes.Buffer. В качестве единственного параметра он принимает строку для записи. Метод возвращает количество записанных байтов и ошибку (которая всегда равна nil, если запись прошла успешно). Этот метод удобно использовать для эффективного построения строк без создания множества промежуточных объектов.

Синтаксис

gobuffer.WriteString(str)

Пример

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

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  var buf bytes.Buffer
  n, err := buf.WriteString("abcde")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println("Written bytes:", n)
  fmt.Println("Buffer content:", buf.String())
}

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

go"Written bytes: 5"
"Buffer content: abcde"

Пример

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

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  var buf bytes.Buffer
  buf.WriteString("Hello, ")
  buf.WriteString("world")
  buf.WriteString("!")
  fmt.Println(buf.String())
}

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

go"Hello, world!"

Пример

Метод WriteString может использоваться для эффективной конкатенации строк внутри цикла:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  var buf bytes.Buffer
  for i := 0; i < 5; i++ {
    buf.WriteString("a")
  }
  fmt.Println(buf.String())
}

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

go"aaaaa"

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

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