Преобразование в uint8

Преобразование в тип uint8 (псевдоним для byte) в Go выполняется с помощью явного приведения типов. Этот тип представляет собой 8-битное беззнаковое целое число, диапазон значений которого от 0 до 255. При преобразовании важно учитывать, что если исходное значение выходит за пределы допустимого диапазона, оно будет усечено (при переполнении) или обрезано (при преобразовании из чисел с плавающей точкой).

Синтаксис

gouint8(expression)

В качестве выражения может выступать переменная, литерал или результат вычисления числового типа.

Пример

Давайте преобразуем целое число в тип uint8:

gopackage main

import "fmt"

func main() {
  var num int = 42
  res := uint8(num)
  fmt.Println(res)
}

Результат выполнения кода:

go42

Пример

Рассмотрим преобразование числа с плавающей точкой. Дробная часть будет отброшена:

gopackage main

import "fmt"

func main() {
  var f float64 = 123.78
  res := uint8(f)
  fmt.Println(res)
}

Результат выполнения кода:

go123

Пример

При выходе за пределы диапазона (0-255) происходит усечение значения. Например, при преобразовании числа 300:

gopackage main

import "fmt"

func main() {
  var big int = 300
  res := uint8(big)
  fmt.Println(res)
}

Результат выполнения кода (300 - 256 = 44):

go44

Пример

Преобразование отрицательного числа также дает неожиданный результат из-за усечения. Получается значение 256 - |число| (для чисел от -256 до -1):

gopackage main

import "fmt"

func main() {
  var neg int = -10
  res := uint8(neg)
  fmt.Println(res)
}

Результат выполнения кода:

go246

Смотрите также