Slices
Slices lijken op arrays, maar ze hebben dynamische lengtes, waardoor ze een flexibelere optie zijn dan arrays.
Om een slice te maken, gebruiken we dezelfde syntaxis als voor arrays, maar in dit geval laten we de grootte weg.
Een slice maken met het var-sleutelwoord:
// Creates an empty slice with no elements
var sliceName [] dataType
// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}
Een slice maken met de :=-operator:
// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }
We kunnen extra elementen toevoegen aan een slice met de functie append. De functie append retourneert een nieuwe slice met de toegevoegde elementen, die we vervolgens kunnen opslaan in de oorspronkelijke slice-variabele. Dit wordt duidelijker met een voorbeeld. De basis syntaxis van de functie append is als volgt:
append(originalSlice, newElement1, newElement2, …)
De volgende code demonstreert het gebruik van de functie 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]
Op dezelfde manier waarop we elementen binnen een array kunnen benaderen, kunnen we ook delen van een array refereren met de volgende syntaxis:
index.go
1arrayName[startIndex:endIndex + 1]
Hiermee worden alle elementen van de startingIndex tot de endingIndex geëxtraheerd. Let op dat we endingIndex + 1 moeten opgeven. Dit wordt duidelijker met een voorbeeld. Bijvoorbeeld:
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]
Hiermee worden de elementen uit de indexen 4 tot 9 geëxtraheerd, waarbij het element op index 4 wordt inbegrepen en het element op index 9 wordt uitgesloten, zoals weergegeven in de syntaxis:
index.go
1arrayName[startingIndex:endingIndex + 1]
We kunnen dit uit het array geëxtraheerde gedeelte ook opslaan in een variabele, waarmee een slice wordt aangemaakt:
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]
Het is belangrijk om te weten dat zo'n slice verwijst naar het gedeelte van het array waarvan het is aangemaakt. Eventuele wijzigingen in die slice hebben daardoor ook invloed op het oorspronkelijke array:
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] }
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 1.96
Slices
Veeg om het menu te tonen
Slices lijken op arrays, maar ze hebben dynamische lengtes, waardoor ze een flexibelere optie zijn dan arrays.
Om een slice te maken, gebruiken we dezelfde syntaxis als voor arrays, maar in dit geval laten we de grootte weg.
Een slice maken met het var-sleutelwoord:
// Creates an empty slice with no elements
var sliceName [] dataType
// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}
Een slice maken met de :=-operator:
// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }
We kunnen extra elementen toevoegen aan een slice met de functie append. De functie append retourneert een nieuwe slice met de toegevoegde elementen, die we vervolgens kunnen opslaan in de oorspronkelijke slice-variabele. Dit wordt duidelijker met een voorbeeld. De basis syntaxis van de functie append is als volgt:
append(originalSlice, newElement1, newElement2, …)
De volgende code demonstreert het gebruik van de functie 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]
Op dezelfde manier waarop we elementen binnen een array kunnen benaderen, kunnen we ook delen van een array refereren met de volgende syntaxis:
index.go
1arrayName[startIndex:endIndex + 1]
Hiermee worden alle elementen van de startingIndex tot de endingIndex geëxtraheerd. Let op dat we endingIndex + 1 moeten opgeven. Dit wordt duidelijker met een voorbeeld. Bijvoorbeeld:
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]
Hiermee worden de elementen uit de indexen 4 tot 9 geëxtraheerd, waarbij het element op index 4 wordt inbegrepen en het element op index 9 wordt uitgesloten, zoals weergegeven in de syntaxis:
index.go
1arrayName[startingIndex:endingIndex + 1]
We kunnen dit uit het array geëxtraheerde gedeelte ook opslaan in een variabele, waarmee een slice wordt aangemaakt:
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]
Het is belangrijk om te weten dat zo'n slice verwijst naar het gedeelte van het array waarvan het is aangemaakt. Eventuele wijzigingen in die slice hebben daardoor ook invloed op het oorspronkelijke array:
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] }
Bedankt voor je feedback!