Массивы в GO

НАВИГАЦИЯ ПО СТРАНИЦЕ

Объявление и инициализация Доступ к элементам массива Изменение элементов массива Длина массива Многомерные массивы

В GO массив — это упорядоченная последовательность элементов одного типа с фиксированной длиной.

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

package main

import "fmt"

func main() {
    // Объявление и инициализация массива
    var numbers [5]int            // Массив из 5 целых чисел, инициализированный нулями
    fmt.Println(numbers)          // Вывод: [0 0 0 0 0]

    // Инициализация массива с заданными значениями
    names := [3]string{"Alice", "Bob", "Charlie"}
    fmt.Println(names)            // Вывод: [Alice Bob Charlie]
}

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

Элементы массива доступны по индексу, начиная с 0:

package main

import "fmt"

func main() {
    numbers := [5]int{1, 2, 3, 4, 5}

    // Доступ к элементам массива
    fmt.Println(numbers[0])       // Вывод: 1
    fmt.Println(numbers[2])       // Вывод: 3
}

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

Элементы массива можно изменять:

package main

import "fmt"

func main() {
    numbers := [5]int{1, 2, 3, 4, 5}

    // Изменение элемента массива
    numbers[2] = 10
    fmt.Println(numbers)          // Вывод: [1 2 10 4 5]
}

Длина массива

Длина массива в GO является частью его типа. Массивы разной длины считаются разными типами:

package main

import "fmt"

func main() {
    var arr1 [3]int
    var arr2 [5]int

    fmt.Println(len(arr1))  // Вывод: 3
    fmt.Println(len(arr2))  // Вывод: 5
}

Многомерные массивы

GO также поддерживает многомерные массивы:

package main

import "fmt"

func main() {
    // Многомерный массив
    var matrix [3][2]int
    matrix[0] = [2]int{1, 2}
    matrix[1] = [2]int{3, 4}
    matrix[2] = [2]int{5, 6}

    fmt.Println(matrix)
    // Вывод:
    // [[1 2]
    //  [3 4]
    //  [5 6]]
}

Это основы работы с массивами в GO. Из-за их фиксированной длины и особенностей работы с памятью, срезы часто предпочтительнее массивов в GO для большинства задач.