Константы и iota
Определяйте константы и используйте iota для перечислений
«Константы и iota» — бесплатный урок Go Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Go Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Go Academy содержит 4 уроков всего.
Что такое константы
Константа хранит значение, которое не изменяется во время выполнения.
- Объявляется с помощью
const - Должна вычисляться во время компиляции
- Может быть типизированной или нетипизированной
- Допустимы строковые, логические, числовые литералы и литералы rune
Типизированные и нетипизированные константы
Нетипизированные константы обладают большей точностью и более гибки:
const Pi = 3.14159— нетипизированное число с плавающей точкой, адаптируется к контекстуconst Pi float64 = 3.14159— типизированное значение float64- Нетипизированные целочисленные константы можно использовать с любым целочисленным типом
Выражения констант
Константы можно вычислять из других констант во время компиляции:
const (
KB = 1024
MB = 1024 * KB
GB = 1024 * MB
)iota: автоматически увеличивающиеся значения
iota — это встроенный счётчик, который сбрасывается до 0 в каждом блоке const и увеличивается на 1 для каждой константы в блоке.
const (
Sunday = iota // 0
Monday // 1
Tuesday // 2
Wednesday // 3
)iota с выражениями
Комбинируйте iota с выражениями для создания мощных перечислений:
const (
_ = iota // skip 0
KB = 1 << (10 * iota) // 1024
MB // 1048576
GB // 1073741824
)Строковые константы
Строковые константы — это неизменяемые строковые значения, известные во время компиляции:
const (
AppName = "GoApp"
AppVersion = "1.0.0"
Greeting = "Hello, " + AppName
)Логические константы
true и false — предварительно объявленные нетипизированные логические константы в Go. Вы можете определять собственные константы логического типа для флагов возможностей:
const (
EnableMetrics = true
DebugMode = false
)Константы и переменные
Основные различия:
- Константы неизменяемы — присваивание после объявления вызывает ошибку компиляции
- В константах нельзя использовать неконстантные выражения, например вызовы функций
- Константы эффективнее — компилятор может подставлять их значения непосредственно в код
- Используйте константы для магических чисел, чтобы повысить читаемость
Перечисления с iota
Создавайте типобезопасные перечисления, сочетая определённый тип с iota:
type Direction int
const (
North Direction = iota
East
South
West
)Stringer для удобочитаемости перечислений
Реализуйте интерфейс Stringer для типа перечисления, чтобы при выводе отображались понятные человеку имена, а не исходные целые числа. Инструмент stringer может автоматически сгенерировать этот код.
Шаблон битовой маски iota
iota со сдвигами битов создаёт наборы флагов:
type Permission uint
const (
Read Permission = 1 << iota // 1
Write // 2
Execute // 4
)
func main() {
access := Read | Write // 3
_ = access
}Быстрая проверка
С какого значения начинается iota в каждом новом блоке const?
Повторение: константы и iota
Теперь Вы понимаете, как работают константы Go:
constобъявляет неизменяемые значения, вычисляемые во время компиляции- Нетипизированные константы гибки и обладают высокой точностью
iotaавтоматически увеличивается внутри блока const, начиная с 0- Сочетайте iota с выражениями для задания размеров файлов, битовых флагов и перечислений
- Создавайте типобезопасные перечисления с помощью определённого типа и iota
Далее: явные преобразования типов и псевдонимы типов.
Изучай Go с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 51
- Уроки
- 203
Часто задаваемые вопросы
Урок «Константы и iota» бесплатный?
Да — полный текст урока «Константы и iota» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Go Academy, подпишись на CoddyKit PRO. Курс Go Academy содержит 4 уроков всего.
Чему я научусь в уроке «Константы и iota»?
Определяйте константы и используйте iota для перечислений Ты практикуешь Go Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Go Academy?
Предыдущий опыт не требуется. Go Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Константы и iota»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Go Academy?
Да. Каждый урок Go Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.