Go 如何修复';常数x字节';围棋出错?

Go 如何修复';常数x字节';围棋出错?,go,constants,slice,Go,Constants,Slice,您好,我正在尝试使用常量制作一个字节片,但是我得到了常量x溢出字节错误。 以下是我的常数: const( Starttrame1 = 0x10A Starttrame2 = 0x10B Starttrame3 = 0X10C Starttrame4 = 0X10D Starttrame5 = 0X10E Starttrame6 = 0x10F ) 下面是我如何声明我的切片: var startValues = [6]byte{Star

您好,我正在尝试使用常量制作一个字节片,但是我得到了
常量x溢出字节
错误。 以下是我的常数:

const(
     Starttrame1 = 0x10A
     Starttrame2 = 0x10B
     Starttrame3 = 0X10C
     Starttrame4 = 0X10D
     Starttrame5 = 0X10E
     Starttrame6 = 0x10F
)
下面是我如何声明我的切片:

var startValues = [6]byte{Starttrame1,Starttrame2,Startrame3,Starttrame4,Starttrame5,Starttrame6}

每次构建时,我都会得到
常量266溢出字节
。如何声明常量以解决此问题?

在Go中,
byte
uint8
的别名,uint8是所有无符号8位整数(
0..255
,两者都包括在内)的集合,请参阅。这意味着
0x10A=266的值不能存储在
byte
类型的值中

如果需要存储这些常量,请使用其他类型,例如
uint16

const (
    Starttrame1 = 0x10A
    Starttrame2 = 0x10B
    Starttrame3 = 0X10C
    Starttrame4 = 0X10D
    Starttrame5 = 0X10E
    Starttrame6 = 0x10F
)

var data = [...]uint16{
    Starttrame1, Starttrame2, Starttrame3, Starttrame4, Starttrame5, Starttrame6,
}

在Go中,
byte
uint8
的别名,它是所有无符号8位整数(
0..255
,两者都包括)的集合,请参阅。这意味着
0x10A=266的值不能存储在
byte
类型的值中

如果需要存储这些常量,请使用其他类型,例如
uint16

const (
    Starttrame1 = 0x10A
    Starttrame2 = 0x10B
    Starttrame3 = 0X10C
    Starttrame4 = 0X10D
    Starttrame5 = 0X10E
    Starttrame6 = 0x10F
)

var data = [...]uint16{
    Starttrame1, Starttrame2, Starttrame3, Starttrame4, Starttrame5, Starttrame6,
}

在上试试。

一个字节最多是两位十六进制数字;最大字节值为
0xFF
(在任何语言中-这不是特定的)。如果您的值大于
0xFF
(您的所有值都是),则必须使用较小的值,或使用大于
字节的类型。一个字节最多为两位十六进制数字;最大字节值为
0xFF
(在任何语言中-这不是特定的)。如果您的值大于
0xFF
(您的所有值都是),则必须使用较小的值,或者使用大于
字节的类型。