Перейти к основному содержимому

Массивы в Go

Массив хранит несколько значений одного типа вместе под одним именем. Благодаря этому не нужно создавать отдельную переменную для каждого значения.


Объявление массива

Go позволяет объявить массив либо с ключевым словом var, либо с оператором :=.

Синтаксис здесь использует var:

Пример

Здесь длина каждого массива указана явно: 3 для arr1 и 5 для arr2. В одном случае используется var, в другом — :=:

Prompt
Объявите два массива с заданным размером: один из строк со значениями, другой из целых чисел со значениями. Выведите оба массива.
Вывод: Программа на Go и захваченный вывод

Пример

Замените длину на ..., и Go сам посчитает значения, поэтому эти два массива получают длины 3 и 5:

Prompt
Объявите два массива с выводимой длиной, используя синтаксис ... . Выведите оба массива.
Вывод: Программа на Go и захваченный вывод

Синтаксис

Когда вы указываете длину сами:

main.go
var array_name = [length]datatype{values}

Синтаксис

Когда Go определяет длину за вас:

main.go
var array_name = [...]datatype{values}

Доступ к элементам массива

Чтобы прочитать один элемент массива, укажите его индекс в квадратных скобках.

Отсчёт начинается с 0, а не с 1, поэтому [0] даёт первый элемент, [1] — второй и так далее.

Пример

Индексы 0 и 2 дают первое и третье значения из prices:

Prompt
Объявите массив цен. Получите доступ к первому и третьему элементам по индексу.
Вывод: Программа на Go и захваченный вывод

Изменение элементов массива

Та же индексная нотация работает и при записи: присвойте индексу новое значение, и этот элемент будет заменён.

Пример

Присваивание в prices[2] заменяет третье значение, 30, на 50:

Prompt
Объявите массив, измените третий элемент, затем выведите первый и третий элементы.
Вывод: Программа на Go и захваченный вывод

Инициализация массива

Элемент массива, оставленный без значения, на самом деле не пуст. Go заполняет его значением по умолчанию для его типа, и то же самое происходит с массивом, который вы вообще не инициализировали.

Примечание: Для int это значение 0; для string это "".

Пример

Вы можете задать только нужные позиции, написав index:value. Здесь индекс 1 получает 10, индекс 2 получает 40, а остальные три элемента остаются равными 0:

Prompt
Объявите массив из пяти целых чисел, в котором инициализированы только некоторые индексы. Выведите массив.
Вывод: Программа на Go и захваченный вывод

Определение длины массива

Чтобы узнать, сколько элементов в массиве, передайте его функции len().