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

Создание массива строк

Массивы могут хранить любой тип данных, включая строки:

days := [7]string{"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"}

Синтаксис такой же, как для чисел: [длина]тип{значения}.


Чтение элементов по индексу

Обращение через [] с индексом (нумерация с 0):

fmt.Println(days[0])  // "Mon" — первый элемент
fmt.Println(days[3])  // "Thu" — четвёртый элемент
fmt.Println(days[6])  // "Sun" — последний (седьмой по счёту)
Индекс 0 1 2 3 4 5 6
Значение Mon Tue Wed Thu Fri Sat Sun

Запись (изменение) элементов

Индекс можно использовать слева от присваивания:

days[2] = "Wednesday"  // меняем значение по индексу 2

fmt.Println(days[2])   // "Wednesday"

Получение длины массива

Функция len() возвращает количество элементов:

fmt.Println(len(days))  // 7

Доступ к последнему элементу

Последний индекс = len - 1:

lastIndex := len(days) - 1
fmt.Println(days[lastIndex])  // "Sun"

// или сразу:
fmt.Println(days[len(days)-1])  // "Sun"

Выход за границы массива (runtime panic)

Обращение к несуществующему индексу вызывает ошибку выполнения:

index := 30
fmt.Println(days[index])  // ❌ panic: runtime error: index out of range [30] with length 7

Программа аварийно завершится с сообщением:

panic: runtime error: index out of range [30] with length 7

Важно: проверяйте границы перед обращением к элементам.


Ключевые моменты

  • Чтение: value := arr[index]
  • Запись: arr[index] = newValue
  • Длина: len(arr)
  • Последний элемент: arr[len(arr)-1]
  • Индексация с 0: первый элемент — arr[0], последний — arr[len-1]
  • Выход за границы: вызывает panic (аварийное завершение программы)