Параметры и значения comptime
Передавайте значения, существующие во время компиляции.
«Параметры и значения comptime» — бесплатный урок Zig Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Zig Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Zig Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Some Arguments Must Be Known Early
Sometimes a function needs an argument the compiler can see, not just the running program. Zig lets you mark such a parameter comptime. 🧩
Marking a comptime Parameter
Write comptime before a parameter name to require that its value be known at compile-time. The caller must pass a known value.
fn repeat(comptime n: usize) void {}The Caller Supplies a Known Value
A comptime parameter accepts only values the compiler already knows, like literals or other compile-time constants.
repeat(3);Run-Time Values Are Rejected
Pass a value that is only known at run-time into a comptime parameter and Zig reports a clear compile error.
comptime Inside a Body
You can also force a local expression to evaluate early. A comptime block runs during compilation and produces a constant.
const table = comptime buildTable();comptime var for Compile-Time State
A comptime var is a mutable variable that exists only during compilation. Use it to accumulate a value as compile-time code runs.
comptime var sum = 0;Known Values Specialize Functions
Because a comptime argument is fixed, Zig can generate a tailored version of the function for that exact value.
Mix comptime and Normal Parameters
A function can take both kinds at once: a comptime parameter for the known part and ordinary parameters for run-time data.
fn scale(comptime factor: u8, x: u32) u32 {
return x * factor;
}Validate Arguments Early
Since the value is known, you can check it during compilation and stop the build if it is wrong, before the program ever runs. ✅
No Run-Time Cost
Work driven by a comptime parameter happens during the build. The resulting binary carries the answer with nothing left to compute.
Inside, the Parameter Is Constant
Within the function body a comptime parameter behaves like a fixed constant, so you may use it in array sizes and other compile-time spots.
fn buffer(comptime n: usize) [n]u8 {
return undefined;
}Quick Check
A function declares a parameter as comptime n: usize. What kind of value must the caller pass?
Recap
Mark a parameter comptime to demand a compile-time value. Zig can then validate it and specialize the function with no run-time cost. 🎯
Часто задаваемые вопросы
Урок «Параметры и значения comptime» бесплатный?
Да — полный текст урока «Параметры и значения comptime» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Zig Academy, подпишись на CoddyKit PRO. Курс Zig Academy содержит 4 уроков всего.
Чему я научусь в уроке «Параметры и значения comptime»?
Передавайте значения, существующие во время компиляции. Ты практикуешь Zig Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Zig Academy?
Предыдущий опыт не требуется. Zig Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Параметры и значения comptime»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Zig Academy?
Да. Каждый урок Zig Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Время компиляции и время выполнения
- Параметры и значения comptime
- Типы — это значения comptime
- inline for и развёрнутые циклы