логотип PurpleSchool
логотип PurpleSchool

Int в Golang

Автор

Дмитрий Нечаев

В языке программирования Go (или Golang) тип данных int представляет собой один из основных типов целых чисел. Он широко используется для работы с числами без дробной части, и в этой статье мы рассмотрим его особенности и примеры использования.

Основные характеристики int

В Go тип int представляет собой целое число, размер которого зависит от платформы, на которой выполняется программа. На 32-битной системе тип int занимает 32 бита, а на 64-битной — 64 бита. Это означает, что диапазон значений, которые может хранить переменная типа int, зависит от архитектуры системы.

Помимо int, Go также поддерживает следующие типы целых чисел:

  • int8 (занимает 8 бит, диапазон от -128 до 127)
  • int16 (занимает 16 бит, диапазон от -32768 до 32767)
  • int32 (занимает 32 бита, диапазон от -2147483648 до 2147483647)
  • int64 (занимает 64 бита, диапазон от -9223372036854775808 до 9223372036854775807)

При выборе подходящего типа данных важно учитывать необходимый диапазон значений и память, которая будет использоваться.

Пример использования int

Давайте рассмотрим пример использования типа int в Go:

package main

import "fmt"

func main() {
    var a int = 10
    b := 20
    sum := a + b

    fmt.Println("Сумма:", sum)
}

В этом примере мы создаем две переменные a и b, обе из которых имеют тип int. Переменная a объявляется явно с использованием ключевого слова var, а переменная b — с помощью сокращённой формы :=, что позволяет Go автоматически определить тип переменной как int.

Операции с int

С типом int можно выполнять основные арифметические операции, такие как сложение, вычитание, умножение и деление:

package main

import "fmt"

func main() {
    a := 15
    b := 4

    fmt.Println("Сложение:", a + b)
    fmt.Println("Вычитание:", a - b)
    fmt.Println("Умножение:", a * b)
    fmt.Println("Деление:", a / b)
}

Результатом выполнения деления a / b будет целое число, так как тип int не поддерживает дробные значения. Для получения дробной части нужно использовать тип float64.

Работа с отрицательными числами

Тип int поддерживает работу с отрицательными значениями. Например:

package main

import "fmt"

func main() {
    a := -10
    b := 25
    result := a + b

    fmt.Println("Результат:", result)
}

Здесь переменная a имеет отрицательное значение, и результат сложения также корректно отображается.

Переполнение и безопасность

Так как тип int имеет ограниченный диапазон значений, важно учитывать возможность переполнения при выполнении операций. В Go переполнение не вызывает исключений, и результат может быть неожиданным, если выходить за пределы допустимого диапазона. Поэтому важно следить за тем, чтобы значения оставались в пределах диапазона типа данных.

Заключение

Тип int в Go — это основной тип данных для работы с целыми числами. Его использование интуитивно понятно и удобно, а поддержка различных подтипов (int8, int16, int32, int64) позволяет гибко управлять памятью и диапазоном значений. Важно помнить о различиях в диапазонах значений на разных платформах и следить за переполнением.

Стрелочка влевоНаименования переменных, функций и структур в GoУстановка GolangСтрелочка вправо

Все гайды по Golang

Работа с YAML в GolangПреобразование типов в GolangКонвертация структур в JSON в GolangStrconv в GolangИспользование пакета SQLx для работы с базами данных в GolangРазбираемся с SQL в GolangРазделение строк с помощью функции split в GolangSort в GoПоиск и замена строк в Go - GolangИспользование пакета reflect в GolangРабота с PostgreSQL в GoPointers в GolangПарсинг в GoРабота со списками (list) в GolangПреобразование int в string в GolangРабота с числами с плавающей точкой в GolangРабота с полями в GolangИспользование enum в GolangОбработка JSON в GoЧтение и запись CSV-файлов в GolangРабота с cookie в GolangРегистры в GoКэширование данных в GolangПреобразование byte в string в GolangByte в GoИспользование bufio для работы с потоками данных в GolangДобавление данных и элементов (add) в Go
Логирование в Golang. Zap, Logrus, Loki, GrafanaРабота с Docker-контейнерами в GoИспользование pprof в GolangМеханизмы синхронизации в GolangРабота с пакетом S3 в GolangМониторинг Golang приложений с помощью PrometheusОптимизация проектов на GoПаттерны проектирования в GolangМиграции базы данных в GolangОркестрация контейнеров Go с Kubernetes + DockerGjGo Playground и компилятор GolangИспользование go mod init для создания модулей GolangРабота с переменными окружения (env) в GolangКоманда go build в GolangАвтоматизация Golang проектов — CI/CD с GitLab CI и JenkinsОтладка кода в GolangЧтение и использование конфигурации в приложениях на GolangКомпиляция в GolangКак развернуть Go-приложение на облаке AWSАутентификация в Golang
Сетевые протоколы в GoПеременные в GolangЗначения в GolangДженерик %T и его применение в GolangТипы данных в GolangИспользование tls в GolangИспользование tag в структурах GolangSwitch в GoСтроки в GolangРабота с потоками (stream) в GolangSelect в GoРуны в GoРабота с пакетом params в GolangКонвертация строк в числа в GolangNull, Nil, None, 0 в GoНаименования переменных, функций и структур в GoInt в GolangУстановка GolangЧтение и установка HTTP заголовков в GolangMethods в GolangGoLand — IDE для разработки на Golang от JetBrainsОбработка «not found» в GolangFloat в GolangФлаги командной строки в Go (Golang)Запуск внешних команд в GolangОбработка ошибок в GoИспользование defer в GolangЗначения default в GolangГенерация кода в GoФорматирование кода в GolangЧистая архитектура в GolangКаналы (channels) в GolangПолучение body из HTTP запроса в Golang
Открыть базу знаний