Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Slices | Arrays en Slices
Introductie tot Golang

bookSlices

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

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]

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

index.go

copy
1
arrayName[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

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]

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

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

We kunnen dit uit het array geëxtraheerde gedeelte ook opslaan in een variabele, waarmee een slice wordt aangemaakt:

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]

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

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

Wat zal de uitvoer zijn van de volgende code?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 1.96

bookSlices

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

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]

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

index.go

copy
1
arrayName[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

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]

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

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

We kunnen dit uit het array geëxtraheerde gedeelte ook opslaan in een variabele, waarmee een slice wordt aangemaakt:

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]

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

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

Wat zal de uitvoer zijn van de volgende code?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 3
some-alt