读取二进制文件时切换字节序

Trying to parse a file with binary records. The first byte of each record tells you the endianness of each record. Theoretically the endianness can change between records. How can I switch from binary.BigEndian to binary.LittleEndian. I'm a total Golang newbie...

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

binary.BigEndian and binary.LittleEndian are are both implementations of binary.ByteOrder. Declare e as type binary.ByteOrder, and you can switch back and forth between the two implementations.

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))