Зарегистрируйтесь, чтобы продолжить обучение

Математика и числа Основы Go

В Go существует множество числовых типов:

  • uint, uint8, uint16, uint32, uint64
  • int, int8, int16, int32, int64
  • float32, float64
  • complex64, complex128

Это связано с тем, что Go — кроссплатформенный язык. Один и тот же код компилируется под разные архитектуры — 32-битные и 64-битные. Поэтому язык предлагает как архитектурно-независимые типы (int, uint), так и строго фиксированные (int32, uint64 и другие).

Практически используемые типы

В повседневной разработке чаще всего используются три типа:

  • int — основной тип целых чисел. Может быть отрицательным. Разрядность зависит от архитектуры (32 или 64 бита).
  • int64 — используется, когда требуется явно задать размер. Например, при работе с bigint из баз данных.
  • float64 — число с плавающей точкой двойной точности. Применяется в математических операциях и финансовых расчётах.

Арифметические операции

В Go поддерживаются базовые арифметические операции:

x := 10
y := 5

x + y // 15
x - y // 5
x * y // 50
x / y // 2

Операции возможны только между значениями одного и того же типа. Неявное приведение типов не выполняется. Пример ошибки:

x := 5.05
y := 10

x + y // ошибка: mismatched types float64 and int

Для выполнения операции нужно привести типы вручную:

x + float64(y) // 15.05

Сокращённые операции присваивания

Go поддерживает сокращённые операции изменения значения переменной:

count := 10
count += 5  // count = 15
count -= 3  // count = 12
count *= 2  // count = 24
count /= 4  // count = 6

Преобразования между типами

Конвертировать значения между числовыми типами можно, но с ограничениями:

x := int64(5.99) // округляется вниз → 5
x := int64(5.05) // ошибка компиляции: constant 5.05 truncated to integer
x := uint(-5) // ошибка компиляции: constant -5 overflows uint

Go не позволяет преобразовать значение, если оно может привести к потере данных на этапе компиляции.


Дополнительные материалы

  1. The Go Programming Language Specification - Numeric Types

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff