Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Slices | Arrays og Slices
Introduktion til Golang

bookSlices

Slices ligner arrays, men de har dynamiske længder, hvilket gør dem til et mere fleksibelt alternativ til arrays.

For at oprette et slice anvendes samme syntaks som for arrays, men her undlades angivelse af størrelse.

Oprettelse af et slice med var-nøgleordet:

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

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

Opret et slice med :=-operatoren:

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

Yderligere elementer kan tilføjes til et slice ved hjælp af funktionen append. Funktionen append returnerer et nyt slice med de tilføjede elementer, som derefter kan gemmes i den oprindelige slice-variabel. Dette bliver tydeligere med et eksempel. Den grundlæggende syntaks for funktionen append er som følger:

append(originalSlice, newElement1, newElement2, …)

Følgende kode demonstrerer brugen af funktionen 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]

På samme måde som vi kan få adgang til elementer i et array, kan vi også referere til dele af et array ved at bruge følgende syntaks:

index.go

index.go

copy
1
arrayName[startIndex:endIndex + 1]

Dette vil udtrække alle elementer fra startingIndex til endingIndex. Bemærk venligst, at vi skal angive endingIndex + 1. Dette bliver tydeligere med et eksempel. For eksempel:

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]

Den udtrækker elementerne fra indeks 4 til 9, inklusive elementet ved indeks 4 og eksklusive elementet ved indeks 9, som udtrykt i syntaksen:

index.go

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Vi kan også gemme denne udtrukne del af arrayet i en variabel og dermed oprette et slice:

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]

Det er vigtigt at bemærke, at et sådant slice refererer til den del af arrayet, hvorfra det blev oprettet. Derfor vil ændringer foretaget i dette slice også påvirke det oprindelige 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

Hvad vil outputtet være for følgende kode?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

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

bookSlices

Stryg for at vise menuen

Slices ligner arrays, men de har dynamiske længder, hvilket gør dem til et mere fleksibelt alternativ til arrays.

For at oprette et slice anvendes samme syntaks som for arrays, men her undlades angivelse af størrelse.

Oprettelse af et slice med var-nøgleordet:

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

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

Opret et slice med :=-operatoren:

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

Yderligere elementer kan tilføjes til et slice ved hjælp af funktionen append. Funktionen append returnerer et nyt slice med de tilføjede elementer, som derefter kan gemmes i den oprindelige slice-variabel. Dette bliver tydeligere med et eksempel. Den grundlæggende syntaks for funktionen append er som følger:

append(originalSlice, newElement1, newElement2, …)

Følgende kode demonstrerer brugen af funktionen 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]

På samme måde som vi kan få adgang til elementer i et array, kan vi også referere til dele af et array ved at bruge følgende syntaks:

index.go

index.go

copy
1
arrayName[startIndex:endIndex + 1]

Dette vil udtrække alle elementer fra startingIndex til endingIndex. Bemærk venligst, at vi skal angive endingIndex + 1. Dette bliver tydeligere med et eksempel. For eksempel:

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]

Den udtrækker elementerne fra indeks 4 til 9, inklusive elementet ved indeks 4 og eksklusive elementet ved indeks 9, som udtrykt i syntaksen:

index.go

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Vi kan også gemme denne udtrukne del af arrayet i en variabel og dermed oprette et slice:

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]

Det er vigtigt at bemærke, at et sådant slice refererer til den del af arrayet, hvorfra det blev oprettet. Derfor vil ændringer foretaget i dette slice også påvirke det oprindelige 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

Hvad vil outputtet være for følgende kode?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 3
some-alt