Оглавление
Что такое массив в Go?<div>Массивы против срезов</div>Создание массиваДоступ к элементам массива<div>Итерация по массиву</div>Длина массиваРабота с фрагментами массиваСравнение массивовСортировка массивовКопирование массивовУдаление элементов массиваПроверка наличия элемента в массивеРазворот массиваМногомерные массивы
Использование массивов в Go
11.02.2026

Это подробное руководство посвящено работе с массивами в языке программирования Go. Вы узнаете всё необходимое для эффективного использования массивов в ваших проектах, включая создание, доступ к элементам, итерацию, сортировку, копирование и удаление элементов массива. Мы рассмотрим основы массивов, различия между ними и срезами, работу с многомерными массивами и многое другое.
Что такое массив в Go?
Массив в Go представляет собой фиксированную коллекцию элементов одинакового типа, расположенных в непрерывной области памяти. Элементы массива индексируются начиная с нуля, и длина массива является частью его типа. Это означает, что массивы разной длины рассматриваются как разные типы.
Здесь мы объявляем массив с именем
arr, состоящий из четырёх целых чисел (int). Первый элемент имеет индекс 0, второй — 1 и так далее.<div>Массивы против срезов</div>
И массивы, и срезы используются для хранения множества значений в одной переменной. Основное различие заключается в том, что массивы имеют фиксированную длину, тогда как срезы обладают динамической длиной. Срезы реализованы поверх массивов.
Создание массива
Создание массива осуществляется с использованием ключевого слова var, за которым следуют название массива, его длина и тип элементов. Общий синтаксис выглядит следующим образом:
Пример объявления и инициализации массива:
Также возможно объявление и инициализация массива в одну строку:
Доступ к элементам массива
Доступ к элементам массива выполняется посредством индекса элемента. Индексация начинается с нуля, а последний элемент имеет индекс равный длине массива минус единица.
<div>Итерация по массиву</div>
Проход по элементам массива возможен с помощью цикла
for. Индекс первого элемента равен нулю, последнего — длине массива минус один.Альтернативный способ — использование оператора
range, который возвращает индекс и значение каждого элемента:Длина массива
Длина массива доступна через встроенную функцию
len():Так как массивы имеют фиксированный размер, изменить их длину после создания невозможно.
Работа с фрагментами массива
Фрагментация массива позволяет получать подмножества элементов массива. Для фрагментации используется следующий синтаксис:
Где
start включает указанный индекс, а end исключается. По умолчанию начальное значение равно 0, конечное длине массива.Примеры:
Сравнение массивов
Массивы сравниваются оператором
==, который проверяет наличие одинаковой длины и одинаковые элементы в одном порядке.Сортировка массивов
Массивы можно отсортировать с помощью пакета
sort. Функция sort.Ints() сортирует массив целых чисел по возрастанию.Другой способ — применение вложенных циклов:
Копирование массивов
Массивы можно скопировать с помощью функции
copy(), принимающей два аргумента: целевой массив и исходный массив. Возвращаемое значение — количество скопированных элементов.Удаление элементов массива
Удаление элемента массива достигается путём присвоения нулевого значения типу элемента:
Нулевое значение целого числа — это 0.
Проверка наличия элемента в массиве
Проверить, присутствует ли элемент в массиве, можно с помощью функции
sort.Search() из пакета sort.Разворот массива
Обратить порядок элементов массива можно двумя способами:
- Замена первого элемента последним, второго предпоследним и так далее.
- Использование функции
sort.Reverse()из пакетаsort.
Первый вариант:
Второй вариант:
Многомерные массивы
Многомерные массивы представляют собой массивы массивов. Например, двумерный массив создаётся следующим образом:
Этот код создаёт двумерный массив размером 2 строки и 3 столбца, содержащий целые числа.
Доступ к элементам производится указанием индексов строк и столбцов:
Вот и всё, что вам потребуется знать о массивах в Go. Надеюсь, данное руководство оказалось полезным.

