Массивы фиксированного размера
Объявляйте массивы, размер которых известен во время компиляции, и обращайтесь к их элементам.
«Массивы фиксированного размера» — бесплатный урок Zig Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Zig Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Zig Academy содержит 4 уроков всего.
Что хранит массив
Массив хранит фиксированное число значений одного типа, расположенных последовательно в одном блоке памяти. 📦
Длина фиксирована
В Zig длина является частью типа массива и определяется во время компиляции. После объявления она не может ни увеличиться, ни уменьшиться.
Объявление массива
В квадратных скобках укажите количество элементов, а затем тип элемента. Массив [3]i32 содержит ровно три знаковых целых числа.
const nums = [3]i32{ 10, 20, 30 };Позвольте Zig посчитать за вас
Используйте символ подчёркивания вместо размера, и Zig выведет его из перечисленных значений. Здесь [_]i32 превращается в массив из трёх элементов.
const nums = [_]i32{ 1, 2, 3 };Индексация начинается с нуля
Получить элемент можно по его индексу в квадратных скобках. Индексы начинаются с 0, поэтому nums[0] — самое первое значение.
const first = nums[0];Получение длины
Каждый массив предоставляет свой размер через поле len. Он известен во время компиляции и не изменяется.
const count = nums.len; // 3Границы проверяются
Выход за конец массива обнаруживается автоматически. В безопасных сборках выход за границы индекса вызывает аварийное завершение во время выполнения, а не незаметное повреждение данных.
Заполнение одним значением
Повторите один элемент по всему массиву с помощью оператора **. Так можно создать пять нулей, не вводя каждый отдельно.
const zeros = [_]u8{0} ** 5;Массивы являются типами-значениями
Присваивание одного массива другому копирует каждый элемент. Массивы независимы, поэтому изменение одного не затрагивает другой.
Изменение элементов
Объявите массив с помощью var, чтобы позже изменять его элементы. Затем присваивайте значение по индексу, обновляя отдельную ячейку.
var scores = [_]i32{ 0, 0, 0 };
scores[1] = 99;Массивы любого типа
Элементы могут иметь любой тип, включая массивы. [2][3]i32 — это небольшая таблица: две строки по три целых числа в каждой.
const grid = [2][3]i32{ .{ 1, 2, 3 }, .{ 4, 5, 6 } };Быстрая проверка
Вы объявили const nums = [_]i32{ 1, 2, 3 }. Чему равно выражение nums.len?
Итоги
Массив фиксированного размера объединяет значения одного типа: длина является частью типа, индексы начинаются с 0, а доступ проверяется на выход за границы. 🎯
Часто задаваемые вопросы
Урок «Массивы фиксированного размера» бесплатный?
Да — полный текст урока «Массивы фиксированного размера» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Zig Academy, подпишись на CoddyKit PRO. Курс Zig Academy содержит 4 уроков всего.
Чему я научусь в уроке «Массивы фиксированного размера»?
Объявляйте массивы, размер которых известен во время компиляции, и обращайтесь к их элементам. Ты практикуешь Zig Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Zig Academy?
Предыдущий опыт не требуется. Zig Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Массивы фиксированного размера»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Zig Academy?
Да. Каждый урок Zig Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Массивы фиксированного размера
- Срезы: указатель плюс длина
- Создание срезов с помощью array[start..end]
- Перебор и изменение срезов