Массивы
Объявление
Массив в Go имеет фиксированный размер, который является частью типа. [3]int и [5]int — разные типы.
var a [3]int // [0 0 0]
b := [3]int{1, 2, 3}
c := [...]int{4, 5, 6} // компилятор считает элементы сам
Индексация и длина
b[0] = 10
fmt.Println(b[1]) // 2
fmt.Println(len(b)) // 3
Выход за границы — паника во время выполнения. Обращение к отрицательному индексу — ошибка компиляции.
Массив — значение
В отличие от C, массив Go — значение. Присваивание копирует все элементы:
a := [3]int{1, 2, 3}
b := a // копия
b[0] = 99
fmt.Println(a) // [1 2 3] — не изменился
Из-за этого большие массивы обычно не передают напрямую в функции — используют срезы.
Двумерные массивы
var grid [3][3]int
grid[1][1] = 5
Упражнения
| № | Задание | Сложность |
|---|---|---|
| 1 | Упражнение 1 | easy |
| 2 | Упражнение 2 | easy |