Константы — это значения, которые объявляются один раз и не могут быть изменены во время выполнения программы. Они удобны для хранения фиксированных значений, таких как статусы, пороговые значения или конфигурационные параметры.
Константы в 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
)