Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Слайси | Масиви та Зрізи
Вступ до Golang

bookСлайси

Слайси схожі на масиви, але мають динамічну довжину, що робить їх більш гнучкою альтернативою масивам.

Щоб створити слайс, використовується той самий синтаксис, що й для масивів, але в цьому випадку розмір не вказується.

Створення слайсу за допомогою ключового слова var:

// Creates an empty slice with no elements
var sliceName [] dataType

// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}

Створення слайсу за допомогою оператора :=:

// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }

Додати додаткові елементи до слайсу можна за допомогою функції append. Функція append повертає новий слайс із доданими елементами, який можна зберегти у змінній з оригінальним слайсом. Це стане зрозуміліше на прикладі. Базовий синтаксис функції append виглядає так:

append(originalSlice, newElement1, newElement2, …)

Наступний код демонструє використання функції append:

index.go

index.go

copy
1234
randomNumbers := [] int { 1, 4, 5} fmt.Println(randomNumbers) // Output: [1 4 5] randomNumbers = append(randomNumbers, 7, 9) fmt.Println(randomNumbers) // Output: [1 4 5 7 9]

Так само, як ми можемо отримувати доступ до елементів масиву, ми також можемо посилатися на частини масиву, використовуючи наступний синтаксис:

index.go

index.go

copy
1
arrayName[startIndex:endIndex + 1]

Буде витягнуто всі елементи від startingIndex до endingIndex. Зверніть увагу, що потрібно вказати endingIndex + 1. Це стане зрозуміліше на прикладі. Наприклад:

index.go

index.go

copy
12
var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } fmt.Println(numbers[4:9]) // Output: [10 12 14 16 17]

Витягує елементи з індексів 4 до 9, включаючи елемент з індексом 4 та виключаючи елемент з індексом 9, як це виражено у синтаксисі:

index.go

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Можна також зберегти цю витягнуту частину масиву у змінній, таким чином створивши зріз:

index.go

index.go

copy
123
var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } numbersPart := numbers[2:7] fmt.Println(numbersPart) // Output: [6 9 10 12 14]

Варто зазначити, що такий зріз посилається на частину масиву, з якої він був створений. Відповідно, будь-які зміни у цьому зрізі також впливатимуть на початковий масив:

index.go

index.go

copy
12345678910111213
package main import "fmt" func main() { var pin = [4] int { 1, 2, 3, 4 } part := pin[1:3] fmt.Println(pin) // Output [1, 2, 3, 4] fmt.Println(part) // Output: [2, 3] part[0] *= 2 part[1] *= 3 fmt.Println(part) // Output [4, 9] fmt.Println(pin) // Output [1, 4, 9, 4] }
question mark

Яким буде вивід наступного коду?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you show an example of how to use the append function with slices?

How do I access or modify elements in a slice?

What happens if I append elements to a slice created from an array?

Awesome!

Completion rate improved to 1.96

bookСлайси

Свайпніть щоб показати меню

Слайси схожі на масиви, але мають динамічну довжину, що робить їх більш гнучкою альтернативою масивам.

Щоб створити слайс, використовується той самий синтаксис, що й для масивів, але в цьому випадку розмір не вказується.

Створення слайсу за допомогою ключового слова var:

// Creates an empty slice with no elements
var sliceName [] dataType

// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}

Створення слайсу за допомогою оператора :=:

// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }

Додати додаткові елементи до слайсу можна за допомогою функції append. Функція append повертає новий слайс із доданими елементами, який можна зберегти у змінній з оригінальним слайсом. Це стане зрозуміліше на прикладі. Базовий синтаксис функції append виглядає так:

append(originalSlice, newElement1, newElement2, …)

Наступний код демонструє використання функції append:

index.go

index.go

copy
1234
randomNumbers := [] int { 1, 4, 5} fmt.Println(randomNumbers) // Output: [1 4 5] randomNumbers = append(randomNumbers, 7, 9) fmt.Println(randomNumbers) // Output: [1 4 5 7 9]

Так само, як ми можемо отримувати доступ до елементів масиву, ми також можемо посилатися на частини масиву, використовуючи наступний синтаксис:

index.go

index.go

copy
1
arrayName[startIndex:endIndex + 1]

Буде витягнуто всі елементи від startingIndex до endingIndex. Зверніть увагу, що потрібно вказати endingIndex + 1. Це стане зрозуміліше на прикладі. Наприклад:

index.go

index.go

copy
12
var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } fmt.Println(numbers[4:9]) // Output: [10 12 14 16 17]

Витягує елементи з індексів 4 до 9, включаючи елемент з індексом 4 та виключаючи елемент з індексом 9, як це виражено у синтаксисі:

index.go

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Можна також зберегти цю витягнуту частину масиву у змінній, таким чином створивши зріз:

index.go

index.go

copy
123
var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } numbersPart := numbers[2:7] fmt.Println(numbersPart) // Output: [6 9 10 12 14]

Варто зазначити, що такий зріз посилається на частину масиву, з якої він був створений. Відповідно, будь-які зміни у цьому зрізі також впливатимуть на початковий масив:

index.go

index.go

copy
12345678910111213
package main import "fmt" func main() { var pin = [4] int { 1, 2, 3, 4 } part := pin[1:3] fmt.Println(pin) // Output [1, 2, 3, 4] fmt.Println(part) // Output: [2, 3] part[0] *= 2 part[1] *= 3 fmt.Println(part) // Output [4, 9] fmt.Println(pin) // Output [1, 4, 9, 4] }
question mark

Яким буде вивід наступного коду?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 3
some-alt