Время компиляции и время выполнения
Что Zig может вычислить до запуска программы.
«Время компиляции и время выполнения» — бесплатный урок Zig Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Zig Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Zig Academy содержит 4 уроков всего.
Два времени в одной программе
Код Zig существует в двух мирах: в мире действий во время компиляции и в мире действий во время работы программы. Понимание этого разделения открывает возможности Zig. ⏱️
Время выполнения — привычный этап
Время выполнения — это всё, что происходит при запуске собранного двоичного файла: ввод пользователя, чтение файлов и значения, неизвестные заранее.
Компиляция происходит раньше
Время компиляции — это работа, которую компилятор Zig выполняет ещё до появления двоичного файла. Некоторые выражения полностью вычисляются уже тогда.
Константы часто вычисляются заранее
Простое выражение с известными значениями можно вычислить во время компиляции. Zig сворачивает его в одну константу в итоговом двоичном файле.
const minutes = 60 * 24;У comptime_int нет фиксированной разрядности
Обычный целочисленный литерал изначально имеет тип comptime_int. Он использует произвольную точность, пока вы не зададите ему тип фиксированного размера, например i32.
const big = 1_000_000_000_000;Ключевое слово comptime
Поставьте comptime перед выражением, чтобы потребовать его вычисления во время компиляции. Если это невозможно, возникнет ошибка.
comptime {
const x = 2 + 3;
}Значения времени выполнения остаются на этом этапе
Значение, прочитанное из ввода, становится известным только во время работы программы. Нельзя попросить компилятор вычислить его во время компиляции.
comptime может выполнять настоящую логику
Время компиляции — это не только математика. Zig может выполнять циклы и вызывать функции во время компиляции, если все входные данные известны на этом этапе.
const total = comptime sum(10);Зачем переносить работу на этап компиляции
Вычисление во время компиляции означает отсутствие затрат во время выполнения. Ответ встраивается в двоичный файл, поэтому программе не нужно вычислять его снова.
Один язык для обоих этапов
Один и тот же синтаксис Zig служит обоим этапам. Отдельного языка макросов нет: код времени компиляции — это просто обычный Zig, выполняемый раньше.
Ошибки обнаруживаются до запуска
Поскольку Zig заранее вычисляет известный код, многие ошибки проявляются как ошибки компиляции. Вы исправляете их ещё до запуска программы.
Быстрая проверка
Вы записали константу, равную 7, умноженному на 24. Когда выполняется это умножение?
Итоги
Zig разделяет работу на время компиляции и время выполнения. Известные значения можно бесплатно вычислить заранее, а неизвестные ждут запуска программы. 🎯
Часто задаваемые вопросы
Урок «Время компиляции и время выполнения» бесплатный?
Да — полный текст урока «Время компиляции и время выполнения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Zig Academy, подпишись на CoddyKit PRO. Курс Zig Academy содержит 4 уроков всего.
Чему я научусь в уроке «Время компиляции и время выполнения»?
Что Zig может вычислить до запуска программы. Ты практикуешь Zig Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Zig Academy?
Предыдущий опыт не требуется. Zig Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Время компиляции и время выполнения»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Zig Academy?
Да. Каждый урок Zig Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Время компиляции и время выполнения
- Параметры и значения comptime
- Типы — это значения comptime
- inline for и развёрнутые циклы