Метод bytes.Buffer.Bytes
Метод Bytes структуры bytes.Buffer возвращает
срез байтов ([]byte), который содержит все данные,
записанные в буфер на момент вызова. Этот метод полезен,
когда необходимо получить накопленные данные в виде байтового
среза для дальнейшей обработки, записи в файл или передачи
по сети. Важно отметить, что возвращаемый срез разделяет
память с внутренним хранилищем буфера, поэтому его не следует
изменять, если вы не хотите повлиять на состояние буфера.
Метод не принимает никаких параметров.
Синтаксис
buffer.Bytes()
Пример использования метода Bytes
Давайте создадим буфер, запишем в него строку и получим
срез байтов с помощью метода Bytes:
package main
import (
"bytes"
"fmt"
)
func main() {
var buf bytes.Buffer
buf.WriteString("abcde")
res := buf.Bytes()
fmt.Println(res)
}
Результат выполнения кода:
[97 98 99 100 101]
Пример преобразования байтов в строку
Полученный срез байтов можно легко преобразовать в строку
с помощью конструкции string(res):
package main
import (
"bytes"
"fmt"
)
func main() {
var buf bytes.Buffer
buf.WriteString("abcde")
res := buf.Bytes()
str := string(res)
fmt.Println(str)
}
Результат выполнения кода:
"abcde"
Пример с дополнительными данными после вызова Bytes
Метод Bytes возвращает срез, отражающий текущее
состояние буфера. Если после вызова Bytes добавить
в буфер новые данные, старый срез не обновится:
package main
import (
"bytes"
"fmt"
)
func main() {
var buf bytes.Buffer
buf.WriteString("abcde")
res := buf.Bytes()
buf.WriteString("fgh")
fmt.Println(string(res))
fmt.Println(buf.String())
}
Результат выполнения кода:
"abcde"
"abcdefgh"
Смотрите также
-
метод
bytes.Buffer.String,
который возвращает содержимое буфера в виде строки -
метод
bytes.Buffer.Write,
который записывает срез байтов в буфер -
метод
bytes.Buffer.WriteString,
который записывает строку в буфер -
метод
bytes.Buffer.Read,
который читает данные из буфера в срез байтов