Arrays

Масиви|Arrays #

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

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 int`s), кожен з яких є одномірним масивом
	// з базовим елементом - ціле число (`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_)