Тип 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