В чем разница между int и uint в Go

«В чем разница между int и uint в Go» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

int и uint в Go — это целочисленные типы, но с разными диапазонами значений:

  • int — знаковый тип, может хранить отрицательные, положительные числа и ноль. Размер зависит от архитектуры (32 или 64 бита).
  • uint — беззнаковый тип, хранит только неотрицательные числа (0 и выше). Также зависит от архитектуры.

Пример:

var a int = -42  // допустимо
var b uint = 42   // допустимо
var c uint = -42  // ошибка компиляции

Когда использовать:

  • int — для общих случаев (счётчики, индексы, где возможны отрицательные значения).
  • uint — когда точно известно, что значение неотрицательное (например, размер файла).