Go 中的自定义长度位类型?

rig*_*sby 4 types bit go

在 Go 中,是否可以定义一个自定义类型,其中包含byte uint uint16除由其他内置类型提供的位数之外的位数?

我计划使用“刚好足够的位”来表示变量,并想要 6 位和 4 位类型。也许是复合布尔类型?

type fourbit struct{
    ones   bool
    twos   bool
    fours  bool
    eights bool
}
Run Code Online (Sandbox Code Playgroud)

虽然这种事情相当混乱,但如果能有一个针对 n 位类型的更通用的解决方案就好了。

pet*_*rSO 6

不会。当前实现中 Go 类型(包括 type )的最小大小bool是一个字节, 。

参考:

Go 编程语言规范