Слайси
Слайси схожі на масиви, але мають динамічну довжину, що робить їх більш гнучкою альтернативою масивам.
Щоб створити слайс, використовується той самий синтаксис, що й для масивів, але в цьому випадку розмір не вказується.
Створення слайсу за допомогою ключового слова 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] }
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 1.96
Слайси
Свайпніть щоб показати меню
Слайси схожі на масиви, але мають динамічну довжину, що робить їх більш гнучкою альтернативою масивам.
Щоб створити слайс, використовується той самий синтаксис, що й для масивів, але в цьому випадку розмір не вказується.
Створення слайсу за допомогою ключового слова 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] }
Дякуємо за ваш відгук!