字节内置类型,是不是应该是uint8?

时间:2013-11-22 11:53:00

标签: go

我在byte godoc中发现type byte byte非常混乱,不应该是type byte uint8

  

byte是uint8的别名,在所有方面都等同于uint8。它   按照惯例,用于区分8位无符号字节值   整数值。 type complex128

2 个答案:

答案 0 :(得分:5)

没有真正的package builtin。但是为了解释内置函数,为godoc生成了一个内置合成类型的合成包。类型byte永远不会真正声明为type byte byte,因为byte是内置的,不需要声明。 (并且没有字节不会且不应该声明为type byte uint8:byte是bultin而不是声明。)

只需忽略合成声明并阅读说明。这里的描述很有用。

答案 1 :(得分:2)

我认为答案在于该方案的介绍:

  

此处记录的项目实际上并不是内置的包,但是这里的描述允许godoc提供语言特殊标识符的文档。

这种语法没有实际意义,它只是一种占位符,可以像其他(非内置)类型一样记录类型bytebyte在内部定义,实际上从未遇到过行type byte byte。作为内部,它不会被定义为uint8的“常规”别名,它确实是type newbyte uint8(虽然type newbyte byte会有效并且可能更清晰。)