Zig Academy · Урок

Никакого скрытого управления потоком и скрытых выделений памяти

Именно эти принципы определяют Zig.

Урок 3 из 413 шагов

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

Два известных обещания

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

Что означает поток управления

Поток управления — это порядок выполнения кода. Скрытый поток управления возникает, когда происходят вызовы, которых Вы не видите на странице, а затем они застают Вас врасплох.

Никаких неожиданных вызовов функций

В Zig нет перегрузки операторов и скрытых деструкторов. Если выполняется функция, её вызов виден прямо в исходном коде.

Сбой виден явно

В Вашей программе нет исключений, перескакивающих через разные участки кода. Чтобы проигнорировать ошибку или передать её дальше, Вы пишете try или обрабатываете её через catch, поэтому пути ошибок явно видны.

const data = try readFile(path);

Что означает выделение памяти

Выделение памяти резервирует место для Ваших данных во время работы программы. Скрытые выделения — это те, которые язык выполняет за Вас молча, за простым вызовом.

Распределители передаются явно

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

fn loadConfig(allocator: std.mem.Allocator) !Config {
    // ...
}

Вы выбираете стратегию

Поскольку Вы передаёте распределитель памяти, Вы решаете, откуда брать память: использовать проверяющий режим отладки, арену или фиксированный буфер стека.

Почему это помогает

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

Чтение лучше догадок

Эти правила означают, что Вы понимаете код, читая его, а не запоминая скрытые механизмы. То, что Вы видите, и выполняется.

defer упрощает очистку

Очистка тоже выполняется явно. Инструкция defer планирует выполнение кода при завершении области видимости, поэтому освобождение памяти находится прямо рядом с её выделением.

const buf = try allocator.alloc(u8, 64);
defer allocator.free(buf);

Компромисс: больше текста

Честная цена — необходимость писать немного больше кода: Вы передаёте распределители через разные участки программы. Взамен получаете полную ясность и контроль.

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

Как узнать, что функция Zig может выделять память?

Итоги

Отсутствие скрытого потока управления и скрытых выделений означает, что ошибки и память всегда видны. Вы читаете код и точно знаете, что произойдёт. ✨

Можно начать бесплатно

Изучай Zig с ИИ-репетитором — бесплатно

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

Курсы
30
Уроки
120

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

Урок «Никакого скрытого управления потоком и скрытых выделений памяти» бесплатный?

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

Чему я научусь в уроке «Никакого скрытого управления потоком и скрытых выделений памяти»?

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

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

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

Сколько времени занимает урок «Никакого скрытого управления потоком и скрытых выделений памяти»?

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

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

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

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

  1. Какую проблему решает Zig
  2. Zig, C, Rust и Go
  3. Никакого скрытого управления потоком и скрытых выделений памяти
  4. Что можно создавать с помощью Zig
← Назад к Zig Academy