Язык программирования Go предоставляет структуру данных, называемую массивом , в которой можно хранить последовательную коллекцию элементов одного и того же типа. Массив используется для хранения коллекции данных, но часто более полезно думать о массиве как о коллекции переменных одного типа.
Вместо того, чтобы объявлять отдельные переменные, такие как number0, number1, … и number99, вы объявляете одну переменную массива, такую как числа, и используете числа [0], числа [1] и …, числа [99] для представления отдельные переменные. Определенный элемент в массиве доступен по индексу.
Все массивы состоят из смежных областей памяти. Самый низкий адрес соответствует первому элементу, а самый высокий адрес — последнему.
Объявление массивов
Чтобы объявить массив в Go, программист определяет тип элементов и количество элементов, требуемых массивом, следующим образом:
var variable_name [SIZE] variable_type
Это называется одномерным массивом. ArraySize должен быть целочисленной константой, большей нуля, и типом может быть любой допустимый тип данных Go. Например, чтобы объявить массив из 10 элементов с именем balance типа float32, используйте этот оператор —
var balance [10] float32
Здесь баланс — это переменный массив, который может содержать до 10 чисел с плавающей запятой.
Инициализация массивов
Вы можете инициализировать массив в Go либо один за другим, либо используя один оператор следующим образом:
var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
Число значений в фигурных скобках {} не может быть больше, чем количество элементов, которые мы объявляем для массива в квадратных скобках [].
Если вы опустите размер массива, будет создан массив, достаточно большой, чтобы вместить инициализацию. Поэтому, если вы напишите —
var balance = []float32{1000.0, 2.0, 3.4, 7.0, 50.0}
Вы создадите точно такой же массив, как и в предыдущем примере. Ниже приведен пример назначения одного элемента массива:
balance[4] = 50.0
Вышеприведенный оператор присваивает элемент 5- й в массиве со значением 50,0. Все массивы имеют 0 в качестве индекса их первого элемента, который также называется базовым индексом, а последний индекс массива будет общим размером массива минус 1. Ниже приведено графическое представление того же массива, который мы обсуждали выше —
Доступ к элементам массива
Доступ к элементу осуществляется путем индексации имени массива. Это делается путем помещения индекса элемента в квадратные скобки после имени массива. Например —
float32 salary = balance[9]
Приведенный выше оператор возьмет 10- й элемент из массива и присвоит значение переменной salary. Ниже приведен пример, который будет использовать все три вышеупомянутых понятия, а именно. декларация, назначение и доступ к массивам —
package main import "fmt" func main() { var n [10]int /* n is an array of 10 integers */ var i,j int /* initialize elements of array n to 0 */ for i = 0; i < 10; i++ { n[i] = i + 100 /* set element at location i to i + 100 */ } /* output each array element's value */ for j = 0; j < 10; j++ { fmt.Printf("Element[%d] = %d\n", j, n[j] ) } }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109
Перейти массивы в деталях
Есть важные понятия, связанные с массивом, которые должны быть понятны программисту на Go —
Go поддерживает многомерные массивы. Простейшей формой многомерного массива является двумерный массив.
Вы можете передать функции указатель на массив, указав имя массива без индекса.