Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

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

Константы — это постоянные значения, которые инициализируются один раз и не изменяются в течение всего выполнения программы. В Go константы объявляются через ключевое слово const:

const [название] [тип данных] = [значение]

const StatusOk int = 200

На практике тип данных не указывается, и несколько констант принято объявлять в рамках одного блока const:

const (
    StatusOk = 200
    StatusNotFound = 404
)

Только некоторые типы данных можно присвоить константе: строки, символы, числа, логический тип:

package main

type Person struct {
}

func main() {
    // такие константы допустимы
    const (
        num = 20
        str = "hey"
        isValid = true
    )

    // нельзя объявить структуру как константу
    const p = Person{} // ошибка компиляции: const initializer Person{} is not a constant
}

Регистр первой буквы указывает на публичность/приватность константы:

const (
    // публичная константа, которую можно использовать во внешних пакетах
    StatusOk = 200

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

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

package main

import "fmt"

const defaultStatus = 200

func main() {
    const status = 404

    fmt.Println("default status:", defaultStatus) // default status: 200
    fmt.Println("current status:", status) // current status: 404
}

Для последовательных числовых констант следует использовать идентификатор iota, который присвоит для списка чисел значения от его текущей позиции:

package main

import "fmt"

const (
    zero = iota
    one
    two
    three
)

const (
	a = iota
	b = 42
	c = iota
	d
)

func main() {
	fmt.Println(zero, one, two, three) // 0 1 2 3
	fmt.Println(a, b, c, d)            // 0, 42, 2, 3
}

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

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

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

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

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

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

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»