Тип uint

Тип uint (unsigned integer) представляет собой целое беззнаковое число, размер которого зависит от архитектуры компьютера. На 32-битных системах uint занимает 32 бита (4 байта), а на 64-битных - 64 бита (8 байт). Этот тип может хранить только неотрицательные числа, что делает его идеальным для ситуаций, когда значения гарантированно не могут быть отрицательными, например, индексы, длины массивов или счетчики.

Синтаксис

govar number uint

Диапазон значений

Диапазон значений зависит от разрядности системы:

go// На 32-битной системе: от 0 до 4294967295
// На 64-битной системе: от 0 до 18446744073709551615

Пример с положительным числом

Давайте создадим переменную типа uint с положительным значением:

gopackage main

import "fmt"

func main() {
  var age uint = 30
  fmt.Println(age)
}

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

go30

Пример с нулевым значением

Переменная типа uint по умолчанию имеет нулевое значение:

gopackage main

import "fmt"

func main() {
  var count uint
  fmt.Println(count)
}

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

go0

Пример с математическими операциями

Выполним арифметические операции с числами типа uint:

gopackage main

import "fmt"

func main() {
  a := uint(10)
  b := uint(20)
  
  sum := a + b
  product := a * b
  diff := b - a
  
  fmt.Println("Sum:", sum)
  fmt.Println("Product:", product)
  fmt.Println("Difference:", diff)
}

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

go"Sum: 30"
"Product: 200"
"Difference: 10"

Пример с переполнением

При попытке присвоить отрицательное значение переменной типа uint возникнет ошибка компиляции. Также важно помнить, что при переполнении значение оборачивается (wraps around):

gopackage main

import "fmt"

func main() {
  var max uint = ^uint(0) // Максимальное значение
  fmt.Println(max)
  
  // Переполнение
  overflow := max + 1
  fmt.Println(overflow) // Оборачивается в 0
}

Результат выполнения кода (на 64-битной системе):

go18446744073709551615
0

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

  • тип int -
    целое знаковое число с размером, зависящим от архитектуры
  • тип uint64 -
    64-битное целое беззнаковое число
  • тип uint32 -
    32-битное целое беззнаковое число
  • тип int64 -
    64-битное целое знаковое число