Slices
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
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]
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
1arrayName[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
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]
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
1arrayName[startingIndex:endingIndex + 1]
Vi kan også gemme denne udtrukne del af arrayet i en variabel og dermed oprette et slice:
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]
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
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] }
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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
Slices
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
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]
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
1arrayName[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
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]
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
1arrayName[startingIndex:endingIndex + 1]
Vi kan også gemme denne udtrukne del af arrayet i en variabel og dermed oprette et slice:
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]
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
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] }
Tak for dine kommentarer!