- Практически используемые типы
- Арифметические операции
- Сокращённые операции присваивания
- Преобразования между типами
В 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 не позволяет преобразовать значение, если оно может привести к потере данных на этапе компиляции.