将字节数组的一部分隐蔽到uint16的最简单方法

if I byte array:

byte_array := []byte("klm,\x15\xf1
")

I would like to the byte \x15 and \xf1 to uint16 in LittleEndian order. What is the easiest way of doing it?

Tried the following:

var new_uint uint16
bff := bytes.newRead(byte_array[4:5])
err = binary.Read(buff, binary.LittleEndian, &new_uint)

but I keep getting nothing, and this is relatively complicated, is there an easier way of doing it?

Thanks...

You have 2 options, using binary.LittleEndian like you already did, a shorter way is:

u16 := binary.LittleEndian.Uint16(byte_array[4:])

Or if you like to live dangerously, you can use unsafe:

// This will return the wrong number on a BE system,
// also unsafe is not available on GAE.
u16 := *(*uint16)(unsafe.Pointer(&byte_array[4]))

playground