Go за Прикладом: Масиви

В Go - масивом є нумерована стуктура даних визначеної довжини та типу. Типово, використання у Go зрізів більш поширене, але масиви все ж корисні у ряді випадків.

package main
import "fmt"
func main() {

Ми створюємо масив a, що вміщуватиме 5 цілих чисел (тип int). Тип елементів та довжина є частиною типізації масиву. Не ініціалізовані значення масиву - приймаматимуть нульове значення базового типу (наприклад 0 для int)

    var a [5]int
    fmt.Println("emp:", a)

Ми можемо використовувати наступні синтаксисичні конструкції для встановлення значень за індексом array[index] = value, або дял отримань значень array[index].

    a[4] = 100
    fmt.Println("set:", a)
    fmt.Println("get:", a[4])

Вбудована функція len повертає довжину нашого масиву.

    fmt.Println("len:", len(a))

Для декларацій та ініціалізації массива одним рядком - скористайтесь наступним синтаксисом:

    b := [5]int{1, 2, 3, 4, 5}
    fmt.Println("dcl:", b)

Ви можете компонувати одномірні масиви в багатомірні. Наприклад, ось тут - ми створюємо багатомірний масив з базовим типом елемента масив цілих чисел (array of ints), кожен з яких є одномірним масивом з базовим елементом - ціле число (int).

    var twoD [2][3]int
    for i := 0; i < 2; i++ {
        for j := 0; j < 3; j++ {
            twoD[i][j] = i + j
        }
    }
    fmt.Println("2d: ", twoD)
}

Зауважте, масив, що надруковано функцією fmt.Println буде виведено у вигляді [v1 v2 v3 ...]

$ go run arrays.go
emp: [0 0 0 0 0]
set: [0 0 0 0 100]
get: 100
len: 5
dcl: [1 2 3 4 5]
2d:  [[0 1 2] [1 2 3]]

Масив служить основою іншій структурі даних що називається назвою - зріз (slices)

Наступний приклад: Зрізи.