0Pricing
Zig Academy · Урок

Анонимные структуры и кортежи

Создавайте сгруппированные значения на месте.

«Анонимные структуры и кортежи» — бесплатный урок Zig Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Zig Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Zig Academy содержит 4 уроков всего.

Иногда это нужно только один раз

Не для каждой группы нужен именованный тип. Zig позволяет записать анонимную структуру прямо в месте использования.

Просто не указывайте имя

Литерал анонимной структуры начинается с .{ и перечисляет поля по именам — перед ним тип не указывается.

const p = .{ .x = 1, .y = 2 };

Используйте поля обычным образом

Поля читаются так же, как у именованной структуры, — через точку. Здесь p.x равно 1, а p.y — 2.

const sum = p.x + p.y;

Приведение к именованному типу

Анонимный литерал можно неявно преобразовать в именованную структуру, если целевой тип известен, например для возвращаемого значения.

fn make() Point {
    return .{ .x = 0, .y = 0 };
}

У кортежей нет имён полей

Если не указывать имена полей, получится кортеж — анонимная структура, поля которой доступны по позиции.

const pair = .{ 1, 2 };

Индексация кортежа

Обратитесь к полю кортежа по номеру, записанному подобно имени поля. Поэтому pair[0] равно 1, а pair[1] — 2.

const first = pair[0];

Разные типы допустимы

Поля кортежа могут иметь разные типы. Один литерал может одновременно содержать целое число, логическое значение и строку.

const row = .{ 42, true, "hi" };

У кортежей есть длина

Кортеж всё ещё является структурой, поэтому у него есть известная во время компиляции величина len, которую можно прочитать с помощью tuple.len.

const n = row.len; // 3

Отлично подходит для аргументов print

std.debug.print принимает кортеж значений для форматирования. Передаваемый вами .{} — это анонимный кортеж.

std.debug.print("{} {}\n", .{ 1, 2 });

Перебор кортежа

Поскольку длина известна во время компиляции, поля кортежа можно перебрать с помощью цикла inline for.

inline for (row) |field| {
    _ = field;
}

Именованные или позиционные

Выбирайте анонимную структуру, когда имена делают код понятнее, а кортеж — когда достаточно короткой упорядоченной группы.

Быстрая проверка

Чем кортеж отличается от именованной анонимной структуры?

Итоги

Вы познакомились с анонимными структурами и кортежами: .{ .x = 1 } — это встроенная структура с именем поля, а .{ 1, 2 } — позиционный кортеж. 📦

Часто задаваемые вопросы

Урок «Анонимные структуры и кортежи» бесплатный?

Да — полный текст урока «Анонимные структуры и кортежи» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Zig Academy, подпишись на CoddyKit PRO. Курс Zig Academy содержит 4 уроков всего.

Чему я научусь в уроке «Анонимные структуры и кортежи»?

Создавайте сгруппированные значения на месте. Ты практикуешь Zig Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Zig Academy?

Предыдущий опыт не требуется. Zig Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Анонимные структуры и кортежи»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Zig Academy?

Да. Каждый урок Zig Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

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

  1. Объявление структур и полей
  2. Методы и параметр self
  3. Значения полей по умолчанию
  4. Анонимные структуры и кортежи
← Назад к Zig Academy