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

Константы Основы Go

Константы — это значения, которые объявляются один раз и не могут быть изменены во время выполнения программы. Они удобны для хранения фиксированных значений, таких как статусы, пороговые значения или конфигурационные параметры.

Константы в Go объявляются с помощью ключевого слова const. Синтаксис:

const name type = value

Тип указывать не обязательно — он будет выведен автоматически:

const greeting = "Hello, Hexlet"
const age = 10

Несколько констант можно объединить в один блок:

const (
    StatusOK       = 200
    StatusNotFound = 404
)

Публичность и приватность

Как и функции, переменные и другие идентификаторы, первая буква имени влияет на область видимости:

const (
    // экспортируемая (публичная) константа — доступна из других пакетов
    StatusOK = 200

    // неэкспортируемая (приватная) — доступна только внутри текущего пакета
    statusInternalError = 500
)

Область видимости

Константы могут быть объявлены как на уровне пакета, так и внутри функции:

package main

import "fmt"

const defaultStatus = 200 // пакетная область

func main() {
    const status = 404 // локальная область

    fmt.Println(defaultStatus) // => 200
    fmt.Println(status)        // => 404
}

Автоматическая нумерация с iota

Если нужно создать набор последовательных чисел, можно использовать iota. Это встроенный идентификатор, значение которого увеличивается на единицу в рамках блока const.

const (
    RoleGuest = iota // 0
    RoleUser         // 1
    RoleAdmin        // 2
    RoleSuperAdmin   // 3
)

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

  1. Constant
  2. Constant declarations
  3. Iota

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

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

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

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

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