Ответ
int и uint в Go — это целочисленные типы, но с разными диапазонами значений:
int— знаковый тип, может хранить отрицательные, положительные числа и ноль. Размер зависит от архитектуры (32 или 64 бита).uint— беззнаковый тип, хранит только неотрицательные числа (0 и выше). Также зависит от архитектуры.
Пример:
var a int = -42 // допустимо
var b uint = 42 // допустимо
var c uint = -42 // ошибка компиляции
Когда использовать:
int— для общих случаев (счётчики, индексы, где возможны отрицательные значения).uint— когда точно известно, что значение неотрицательное (например, размер файла).