Массивы

Работа с фиксированными коллекциями данных одного типа, индексация, итерация и практические задачи.

Что изучим

  • Объявление и инициализация массивов
  • Доступ к элементам через индексацию
  • Границы массивов и runtime panic
  • Итерация через классический for и for range
  • Многомерные массивы
  • Фильтрация и преобразование элементов
  • Практические применения: координаты, поиск минимума/максимума

Основные концепции

Массив: коллекция фиксированного размера элементов одного типа. Размер указывается при объявлении и не может изменяться. Синтаксис: [размер]тип. Нумерация с нуля — первый элемент имеет индекс 0, последний len(arr)-1.

Инициализация: можно указать все элементы явно, частично (остальные получат нулевые значения) или пропустить список значений для массива нулевых значений. Оператор … автоматически определяет размер по количеству элементов.

Доступ к элементам: через квадратные скобки с индексом. Для чтения: value := arr[index], для записи: arr[index] = newValue. Обращение к несуществующему индексу вызывает runtime panic — ошибка не обнаруживается компилятором.

Итерация: классический for с счётчиком (for i := 0; i < len(arr); i++) или идиоматичный for range. Второй вариант безопаснее и проще. Можно получить индекс и значение, только значение (через _) или только индекс.

Фильтрация: проход по массиву с проверкой условия. Оператор % для проверки чётности (num % 2 == 0), деления на другие числа, положительности/отрицательности. Результат можно выводить сразу или сохранять в новый массив.

Многомерные массивы: массив массивов для представления матриц, таблиц, координатных сеток. Синтаксис: [rows][cols]тип. Доступ через двойную индексацию: arr[i][j]. Требуют вложенных циклов для обхода.

Практические задачи: хранение координат точек в 2D/3D пространстве, вычисление расстояний по теореме Пифагора, поиск минимального/максимального элемента, вычисление средних значений с учётом типов int и float64.