0Pricing
Zig Academy · Урок

inline for и развёрнутые циклы

Перебирайте элементы во время компиляции.

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

Цикл, выполняющийся во время компиляции

inline for — это цикл, который компилятор разворачивает во время компиляции. Вместо выполнения цикла во время работы программы он копирует его тело для каждого элемента. 🔁

Ключевое слово inline

Добавьте inline перед for, чтобы попросить Zig развернуть цикл во время компиляции. К этому моменту число итераций должно быть известно.

inline for (items) |item| {}

Разворачивание означает копирование тела

При разворачивании цикл заменяется одной копией его тела для каждого элемента. Во время работы программы счётчика цикла уже нет — остаётся только последовательный код.

Итерация по известному кортежу

Один из распространённых вариантов применения — перебор кортежа, поля которого имеют разные типы. Каждая развёрнутая копия может обрабатывать свой элемент с правильным типом.

inline for (.{ 1, true, 3.0 }) |v| {}

Индекс может быть comptime

В inline for индекс цикла на каждой итерации является значением времени компиляции, поэтому его можно использовать там, где разрешены только константы.

inline for (list, 0..) |v, i| {}

Каждая итерация может отличаться

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

Отражение полей структуры

Объедините inline for с отражением типов, чтобы во время компиляции посетить каждое поле структуры и сгенерировать специально настроенный код для каждого поля.

inline for (fields) |field| {}

Обмен размера кода на скорость

Разворачивание устраняет накладные расходы цикла, но увеличивает размер двоичного файла. Используйте inline for для небольшого фиксированного числа итераций, когда полученное ускорение того стоит.

Количество должно быть известно

Для inline for нужна длина, которую видит компилятор. Перебор фрагмента во время работы программы с неизвестной длиной развернуть нельзя.

Существует также inline while

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

Используйте небольшое число итераций

Выбирайте inline for, когда число элементов мало и фиксировано. Для больших или неизвестных длин обычный цикл for сохраняет двоичный файл компактным.

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

Что просит компилятор Zig сделать добавление inline к циклу for?

Итоги

inline for разворачивает цикл с известной длиной во время компиляции, позволяя каждой копии использовать собственный тип и устраняя накладные расходы цикла во время работы программы. 🎯

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

Урок «inline for и развёрнутые циклы» бесплатный?

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

Чему я научусь в уроке «inline for и развёрнутые циклы»?

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

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

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

Сколько времени занимает урок «inline for и развёрнутые циклы»?

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

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

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

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

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