Я новичок в Go и пытаюсь написать приложение, которое читает RPM-файлы. Начало каждого блока имеет магический шар [4]byte
.В Golang как вы преобразовываете срез в массив
Вот моя структура
type Lead struct {
Magic [4]byte
Major, Minor byte
Type uint16
Arch uint16
Name string
OS uint16
SigType uint16
}
Я пытаюсь сделать следующее:
lead := Lead{}
lead.Magic = buffer[0:4]
Я ищу в Интернете и не знаете, как идти от среза к массиву (без копирования) , Я всегда могу сделать Magic []byte
(или даже uint64
), но мне было любопытно, как мне перейти от типа []byte
к [4]byte
, если нужно?
Прошла недавняя дискуссия о том, разрешено ли разрезать на массив. Результаты неубедительны, что-то вроде того, что вы хотите, может быть добавлено в будущем. Имейте в виду, что [4] байт - это объект, а не указатель на объект. Единственное, что может быть возможно, - назначить указателю на массив. – fuz
https://play.golang.org/p/ulk0kmJzf6 –