Тип uint
Тип uint (unsigned integer) представляет собой целое беззнаковое число,
размер которого зависит от архитектуры компьютера. На 32-битных системах
uint занимает 32 бита (4 байта), а на 64-битных - 64 бита (8 байт).
Этот тип может хранить только неотрицательные числа, что делает его
идеальным для ситуаций, когда значения гарантированно не могут быть
отрицательными, например, индексы, длины массивов или счетчики.
Синтаксис
var number uint
Диапазон значений
Диапазон значений зависит от разрядности системы:
// На 32-битной системе: от 0 до 4294967295
// На 64-битной системе: от 0 до 18446744073709551615
Пример с положительным числом
Давайте создадим переменную типа uint с положительным значением:
package main
import "fmt"
func main() {
var age uint = 30
fmt.Println(age)
}
Результат выполнения кода:
30
Пример с нулевым значением
Переменная типа uint по умолчанию имеет нулевое значение:
package main
import "fmt"
func main() {
var count uint
fmt.Println(count)
}
Результат выполнения кода:
0
Пример с математическими операциями
Выполним арифметические операции с числами типа uint:
package 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)
}
Результат выполнения кода:
"Sum: 30"
"Product: 200"
"Difference: 10"
Пример с переполнением
При попытке присвоить отрицательное значение переменной типа uint
возникнет ошибка компиляции. Также важно помнить, что при переполнении
значение оборачивается (wraps around):
package main
import "fmt"
func main() {
var max uint = ^uint(0) // Максимальное значение
fmt.Println(max)
// Переполнение
overflow := max + 1
fmt.Println(overflow) // Оборачивается в 0
}
Результат выполнения кода (на 64-битной системе):
18446744073709551615
0