Тип array

Тип array в Go представляет собой упорядоченную коллекцию элементов одного типа с фиксированной длиной. Длина массива является частью его типа, поэтому массивы с разной длиной считаются разными типами. Массивы передаются по значению, то есть при присваивании или передаче в функцию создается копия всего массива.

Синтаксис

govar arr [N]Type
arr := [N]Type{values}

Где N — длина массива (константа), Type — тип элементов, а values — значения для инициализации.

Пример

Объявим массив из 5 целых чисел и выведем его:

gopackage main

import "fmt"

func main() {
  var arr [5]int
  fmt.Println(arr)
}

Результат выполнения кода:

go[0 0 0 0 0]

По умолчанию все элементы массива инициализируются нулевыми значениями соответствующего типа.

Пример

Инициализируем массив строк при объявлении:

gopackage main

import "fmt"

func main() {
  arr := [5]string{"a", "b", "c", "d", "e"}
  fmt.Println(arr)
}

Результат выполнения кода:

go[a b c d e]

Пример

Получим доступ к элементу массива по индексу и изменим его значение:

gopackage main

import "fmt"

func main() {
  arr := [3]int{1, 2, 3}
  arr[0] = 10
  fmt.Println(arr)
}

Результат выполнения кода:

go[10 2 3]

Пример

Перебор элементов массива с помощью цикла for:

gopackage main

import "fmt"

func main() {
  arr := [4]int{10, 20, 30, 40}
  for i := 0; i < len(arr); i++ {
    fmt.Println(arr[i])
  }
}

Результат выполнения кода:

go10
20
30
40

Пример

Используем range для перебора массива с получением индекса и значения:

gopackage main

import "fmt"

func main() {
  arr := [3]string{"a", "b", "c"}
  for idx, val := range arr {
    fmt.Printf("Index: %d, Value: %s\n", idx, val)
  }
}

Результат выполнения кода:

go"Index: 0, Value: a"
"Index: 1, Value: b"
"Index: 2, Value: c"

Смотрите также

  • тип slice,
    который представляет динамический массив
  • тип string,
    который представляет строку как массив байтов
  • тип int,
    который является базовым числовым типом
  • тип make,
    которая создает и инициализирует слайсы, карты и каналы