Слайси
Свайпніть щоб показати меню
Слайси схожі на масиви, але мають динамічну довжину, що робить їх більш гнучкою альтернативою масивам.
Щоб створити слайс, використовується той самий синтаксис, що й для масивів, але в цьому випадку розмір не вказується.
Створення слайсу за допомогою ключового слова 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
1234randomNumbers := [] 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
1arrayName[startIndex:endIndex + 1]
Буде витягнуто всі елементи від startingIndex до endingIndex. Зверніть увагу, що потрібно вказати endingIndex + 1. Це стане зрозуміліше на прикладі. Наприклад:
index.go
12var 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
1arrayName[startingIndex:endingIndex + 1]
Можна також зберегти цю витягнуту частину масиву у змінній, таким чином створивши зріз:
index.go
123var 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
12345678910111213package 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] }
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат