Доступ к элементам массива
Создание массива строк
Массивы могут хранить любой тип данных, включая строки:
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(аварийное завершение программы)