除了使用 cgo,你知道将 GO 对象打包到字节切片的最佳方法是什么吗?
据我们所知,我们可以使用 encoding/binary 包将 GO 结构序列化为字节切片,但它仅支持固定长度变量,因此不支持以下情况。
typedef struct
{
uint32_t foo:12;
uint32_t bar:9;
uint32_t baz:1;
uint32_t qux:10;
} type_t;
对于这种情况,考虑到字节序,我们是否需要使用 getter/setter 来实现 GO 结构?如:
type typeT struct
{
fooBarBazQux uint32
}
// some complex bit manipulation considering endianness
func (t typeT) getFoo() uint32 {
}
func (t typeT) setFoo(val uint32) {
}
有没有更好的解决方案?
我为我的自定义类型尝试了encoding/json mashaler,但 encoding/binary 包似乎不支持这种接口。
我需要你的帮助。
小怪兽爱吃肉
相关分类