int32 и int64 - это знаковые целочисленные типы данных в Go (также известном как Golang), которые представляют 32-битные и 64-битные целые числа соответственно.
В Go тип данных int соответствует int32 на 32-битной платформе и int64 на 64-битной платформе.
Это означает, что если ваша программа работает на 32-битной архитектуре, то тип int будет соответствовать типу int32, а если на 64-битной платформе – int64.
int32 может хранить целые числа от -2147483648 до 2147483647 включительно, и это тип целых чисел по умолчанию в Go, когда вы не указываете размер и работаете на 32-битной архитектуре.
int64 может хранить целые числа от -9223372036854775808 до 9223372036854775807, включительно, и это целочисленный тип по умолчанию в Go, если вы не указываете размер и работаете на 64-битной архитектуре.
Они могут быть объявлены и инициализированы следующим образом:
var a32 int32 = 42, var a64 int64 = 42 или a32 := int32(42), a64 := int64(42)
Так же можно использовать простую запись: var a int = 42
Можно выполнять различные операции над значениями int32 и int64, такие как арифметические и побитовые операции, сравнение, преобразование в другие целочисленные типы и обратно.
В будущем вы также можете использовать функции пакета math для переменных типа int32 и int64.
Важно отметить, что при работе со значениями int32 и int64 необходимо убедиться, что результат любой операции находится в диапазоне соответствующего типа, иначе программа выйдет в панику с ошибкой во время выполнения.
Когда диапазон значений, с которыми вы работаете, известен, рекомендуется использовать соответствующий целочисленный тип, чтобы обеспечить последовательное поведение вашей программы на разных платформах.
Еще раз важно отметить, что тип int зависит от архитектуры, это означает, что если вы пишете код, использующий тип int, он может работать на одной платформе, но не работать на другой.
Рекомендуется использовать конкретные типы (int8, int16, int32, int64), когда известен диапазон значений и важно иметь последовательное поведение на разных платформах.