在Go语言中,是否支持自定义长度的位类型?

huangapple go评论77阅读模式
英文:

Custom length bit types in Go?

问题

在Go语言中,是否可以定义一个自定义类型,其位数不同于byte uint uint16或其他内置类型提供的位数?

我计划使用"刚好足够的位数"来表示变量,并且想要一个6位和一个4位的类型。也许可以使用复合的bool类型?

type fourbit struct{
    ones   bool
    twos   bool
    fours  bool
    eights bool
}

虽然这种方法有些混乱,但希望能有一个更通用的解决方案来定义n位类型。

英文:

In Go is it possible to define a custom type with a number of bits other than those offered by byte uint uint16 or any of the other built-in types?

I'm planning on using "just enough bits" to represent variables and wanted a 6-bit and a 4-bit type. Perhaps a composite bool type?

type fourbit struct{
    ones   bool
    twos   bool
    fours  bool
    eights bool
}

Though this sort of thing is quite messy and it would be nice to have a more general solution for n-bit types.

答案1

得分: 6

不。当前实现中,包括类型 bool 在内的 Go 类型的最小大小为一个字节。

参考资料:

Go 编程语言规范

英文:

No. The minimum size of a Go type in current implementations, including type bool, is one byte, .

References:

The Go Programming Language Specification

huangapple
  • 本文由 发表于 2015年10月30日 05:59:52
  • 转载请务必保留本文链接:https://go.coder-hub.com/33425374.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定