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
(您的所有值都是),则必须使用较小的值,或者使用大于字节的类型。