Как исправить ошибку «константы x oveflows byte» в go? - PullRequest
0 голосов
/ 25 марта 2019

Здравствуйте. Я пытаюсь создать байт с константами, но получаю ошибку constant x overflows byte. Вот мои константы:

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

и вот как я заявляю свой фрагмент:

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

Каждый раз, когда я строю, я получаю constant 266 overflows byte. Как мне объявить свои константы, чтобы это исправить?

1 Ответ

2 голосов
/ 25 марта 2019

В Go byte - это псевдоним для uint8, который представляет собой набор всех 8-битных целых без знака (0..255, включая оба), см. Spec: Числовые типы . Это означает, что значение 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 .

...