#go #binary
#Вперед #двоичный
Вопрос:
Пытаюсь проанализировать файл с двоичными записями. Первый байт каждой записи сообщает вам порядковый номер каждой записи. Теоретически порядковый номер может меняться между записями. Как я могу переключиться с двоичного.BigEndian в двоичный.Маленький порядковый номер. Я полный новичок в Golang…
package main
import (
"fmt"
//"time"
"reflect"
"encoding/binary"
)
func main() {
var b byte = 0xe2
e := binary.BigEndian
switch b {
case 0xe2:
e = binary.BigEndian
default:
e = binary.LittleEndian
}
fmt.Println(reflect.TypeOf(e))
}
tmp/sandbox356311773/main.go:17: cannot use binary.LittleEndian (type binary.littleEndian) as type binary.bigEndian in assignment
Ответ №1:
binary.BigEndian
и binary.LittleEndian
являются обеими реализациями binary.ByteOrder
. Объявите e
как тип binary.ByteOrder
, и вы сможете переключаться между двумя реализациями.
https://play.golang.org/p/GzL_2q5wvn
var b byte = 0xe2
var e binary.ByteOrder
switch b {
case 0xe2:
e = binary.BigEndian
default:
e = binary.LittleEndian
}
fmt.Println(reflect.TypeOf(e))