如果我字节数组:
byte_array := []byte("klm,\x15\xf1\n")
我想以LittleEndian顺序将字节\ x15和\ xf1传递给uint16。最简单的方法是什么?
尝试了以下内容:
var new_uint uint16 bff := bytes.newRead(byte_array[4:5]) err = binary.Read(buff, binary.LittleEndian, &new_uint)
但是我什么也没得到,而且这相对复杂,有没有更简单的方法?
谢谢…
您有2个选择,使用binary.LittleEndian就像您已经做的那样,一种较短的方法是:
u16 := binary.LittleEndian.Uint16(byte_array[4:])
或者,如果您想过着危险的生活,则可以使用不安全的方法:
// 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