0Pricing
Zig Academy · Урок

Типы — это значения 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 — локальная установка не требуется.

Все уроки этого курса

  1. Время компиляции и время выполнения
  2. Параметры и значения comptime
  3. Типы — это значения comptime
  4. inline for и развёрнутые циклы
← Назад к Zig Academy