Типы — это значения comptime
Работайте с типом как с любым другим значением.
«Типы — это значения comptime» — бесплатный урок Zig Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Zig Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Zig Academy содержит 4 уроков всего.
Тип — это всего лишь значение
В Zig тип — не магический синтаксис, а обычное значение, которое можно сохранить, передать и вернуть. Оно существует только во время компиляции. 🧠
Тип типа — type
Каждый тип имеет тип type. Поэтому u8 — это значение типа type, так же как 5 — значение целочисленного типа.
const T: type = u8;Привяжите тип к const
Тип можно назвать с помощью константы. Здесь Number становится другим именем для i32, которое можно использовать везде, где ожидается тип.
const Number = i32;
const x: Number = 7;Передавайте тип функции
Функция может принимать тип как параметр comptime. Аргумент является настоящим значением, вычисляемым во время компиляции программы.
fn sizeOf(comptime T: type) usize {
return @sizeOf(T);
}Возвращайте тип из функции
Поскольку типы являются значениями, функция может возвращать тип. Её возвращаемый тип — это просто type, а тело выдаёт тип как результат.
fn Pair() type {
return struct { a: u8, b: u8 };
}Так работают обобщённые типы
Передача и возврат типов — основа обобщённых типов в Zig. Особого синтаксиса для них нет: просто значения типов передаются из места в место.
Типы существуют только во время компиляции
Значение типа type существует только во время компиляции. Нельзя сохранить тип в переменной времени выполнения или прочитать его из ввода.
Исследуйте типы с помощью встроенных средств
Встроенные средства рассматривают тип как данные. @sizeOf принимает значение типа и возвращает, сколько байт занимает один его экземпляр.
const bytes = @sizeOf(u32);Сравнение типов на равенство
Поскольку типы являются значениями, их можно сравнивать во время компиляции. Выражение T == u8 истинно только тогда, когда T в точности равен u8.
Выбор типа во время компиляции
Вы можете выполнить ветвление по типу и выбрать другой тип — всё это во время компиляции. Благодаря этому одна функция может адаптировать своё поведение к полученному типу.
Получение имени типа из результата функции
Поскольку функция может возвращать тип, этот результат можно связать с константой, а затем использовать так же, как имя любого встроенного типа.
const Point = Pair();
const p: Point = .{ .a = 1, .b = 2 };Быстрая проверка
Каков в Zig тип самого типа u8?
Итоги
Типы в Zig — это значения comptime типа type. Их можно именовать, передавать, возвращать и сравнивать — именно так создаются обобщённые конструкции. 🎯
Часто задаваемые вопросы
Урок «Типы — это значения comptime» бесплатный?
Да — полный текст урока «Типы — это значения comptime» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Zig Academy, подпишись на CoddyKit PRO. Курс Zig Academy содержит 4 уроков всего.
Чему я научусь в уроке «Типы — это значения comptime»?
Работайте с типом как с любым другим значением. Ты практикуешь Zig Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Zig Academy?
Предыдущий опыт не требуется. Zig Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Типы — это значения comptime»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Zig Academy?
Да. Каждый урок Zig Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Время компиляции и время выполнения
- Параметры и значения comptime
- Типы — это значения comptime
- inline for и развёрнутые циклы