Массивы
Работа с фиксированными коллекциями данных одного типа, индексация, итерация и практические задачи.
Что изучим
- Объявление и инициализация массивов
- Доступ к элементам через индексацию
- Границы массивов и 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.