Я пытаюсь закодировать большое число в список байтов (uint8 в Go).
Количество байтов неизвестно, поэтому я бы хотел использовать вектор.
Но Go не предоставляет вектор байта, что я могу сделать?
И возможно ли получить кусочек такого байтового вектора?
Я намерен реализовать сжатие данных.
Вместо хранения маленького и большого числа с одинаковым количеством байтов,
Я реализую переменные байты, которые используют меньше байтов с небольшим числом
и больше байтов с большим числом.
Мой код не может быть скомпилирован, неверное утверждение типа:
1 package main
2
3 import (
4 //"fmt"
5 "container/vector"
6 )
7
8 func vbEncodeNumber(n uint) []byte{
9 bytes := new(vector.Vector)
10 for {
11 bytes.Push(n % 128)
12 if n < 128 {
13 break
14 }
15 n /= 128
16 }
17 bytes.Set(bytes.Len()-1, bytes.Last().(byte)+byte(128))
18 return bytes.Data().([]byte) // <-
19 }
20
21 func main() { vbEncodeNumber(10000) }
Я хочу записать много такого кода в двоичный файл,
поэтому я хотел бы, чтобы func мог возвращать байтовый массив.
Я не нашел пример кода для вектора.