Я хотел бы понять, как хранить несколько байтовых срезов отдельно в срезе. Как мы надеемся проиллюстрировать ниже, я хочу, чтобы структура хранилища хранила результат сжатого результата n, найденного в buf.
type storage struct
{
compressed []byte
}
func (s* storage) compress(n []byte) {
var buf bytes.Buffer
w := gzip.NewWriter(&buf)
w.Write(n)
w.Close()
store := buf.Bytes()
s.compressed = append(s.compressed, store)
}
1 ответ
В вашем коде compressed
- это кусок байтов. Если вы хотите хранить срезы байтов, вам понадобится срез срезов байтов. Так что измените тип compressed
на [][]byte
Похожие вопросы
Новые вопросы
go
Go - это язык программирования с открытым исходным кодом. Он статически типизирован, с синтаксисом, свободно полученным из C, с добавлением автоматического управления памятью, безопасностью типов, некоторыми возможностями динамической типизации, дополнительными встроенными типами, такими как массивы переменной длины (называемые слайсами) и сопоставления ключ-значение, и большая стандартная библиотека.
s.compressed = append(s.compressed, store...)
. Обратите внимание на многоточие после последнего аргумента. Это «распаковывает» срезstore
в список отдельных байтов, каждый из которых является отдельным аргументом дляappend
.