Раздел 41 · Zig с нуля

Что такое Zig и зачем он нужен

junior~10 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Что такое Zig и зачем он нужен

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

Ты пока не обязан знать, как устроен процессор. Достаточно обычной задачи: посчитать стоимость трёх билетов. Сегодня увидим, как короткая запись становится программой и почему автор языка хочет, чтобы её действия можно было объяснить по строкам.

Одна мысль урока

Zig делает важные действия программы видимыми, но не принимает решения о безопасности за тебя.

От картинки к записи

Язык программирования

нужен не компьютеру, а человеку. Машина выполняет инструкции, а ты читаешь названия, условия и типы. Zig относится к языкам с компиляцией: сначала инструмент проверяет исходник, затем создаёт исполняемый файл. Это отличается от ситуации, когда отдельная программа читает команды по одной во время запуска.

Компилятор

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

У Zig три полезных свойства. Из текста видно, где вызывается функция и возвращается ошибка. Динамическая память выделяется через явно переданный инструмент, аллокатор; к нему дойдём позже. Компилятор умеет строить программы для нескольких операционных систем и процессоров. Ни одно свойство не означает, что новичок автоматически напишет безопасную программу. У языка есть проверки, но он не доказывает все сроки жизни памяти.

Начнём без динамической памяти, сети и файлов. Число u16 обозначает целое без отрицательных значений, которое занимает 16 двоичных разрядов. Для количества билетов это удобный ограниченный диапазон. const сообщает, что имя не получит новое значение. Знак * здесь означает умножение; у других записей этого знака есть другое значение, которое разберём отдельно.

Версия языка важна. Этот раздел использует Zig 0.16.0, а не произвольный пример из старой статьи. Стандартная библиотека до версии 1.0 меняется. Несовпадение названий функций не говорит, что ты неспособен разобраться: сначала сравни версии. Не переписывай работающий пример по памяти из другого руководства.

Где Zig встречается на практике? В инструментах командной строки, библиотеках, обработке данных и программах, которым нужно управлять памятью. На простом сайте он не становится лучшим выбором только потому, что быстрый. Сначала формулируют задачу: что должно выполняться, где будет работать программа, кто её поддерживает. Затем выбирают инструмент.

премиум-урок

Продолжение в премиуме: 1 200 ₽ в месяц или 10 000 ₽ в год. Вместе с ним серверные проверки задач и школьные токены AI-коуча.

Оплата пока не подключена: премиум и курсы открываются промокодом.