Skiver
Slices ligner på arrays, men de har dynamisk lengde, noe som gjør dem til et mer fleksibelt alternativ til arrays.
For å opprette en slice bruker vi samme syntaks som for arrays, men i dette tilfellet utelater vi å spesifisere størrelse.
Opprette en slice ved å bruke var-nøkkelordet:
// Creates an empty slice with no elements
var sliceName [] dataType
// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}
Opprette en slice ved å bruke :=-operatoren:
// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }
Vi kan legge til flere elementer i en slice ved å bruke append-funksjonen. append-funksjonen returnerer en ny slice med de nye elementene lagt til, som vi deretter kan lagre i den opprinnelige slice-variabelen. Dette blir tydeligere med et eksempel. Grunnleggende syntaks for append-funksjonen er som følger:
append(originalSlice, newElement1, newElement2, …)
Koden under viser bruk av append-funksjonen:
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åte som vi kan få tilgang til elementer i et array, kan vi også referere til deler av et array ved å bruke følgende syntaks:
index.go
1arrayName[startIndex:endIndex + 1]
Dette vil hente ut alle elementer fra startingIndex til endingIndex. Vær oppmerksom på at vi må oppgi endingIndex + 1. Dette blir 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 henter ut elementene fra indeksene 4 til 9, inkludert elementet på indeks 4 og ekskludert elementet på indeks 9, som uttrykt i syntaksen:
index.go
1arrayName[startingIndex:endingIndex + 1]
Vi kan også lagre denne utdragne delen av arrayet i en variabel, og dermed opprette en 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 viktig å merke seg at en slik slice refererer til den delen av arrayet den ble opprettet fra. Derfor vil endringer gjort i denne slicen også påvirke det opprinnelige arrayet:
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] }
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Skiver
Sveip for å vise menyen
Slices ligner på arrays, men de har dynamisk lengde, noe som gjør dem til et mer fleksibelt alternativ til arrays.
For å opprette en slice bruker vi samme syntaks som for arrays, men i dette tilfellet utelater vi å spesifisere størrelse.
Opprette en slice ved å bruke var-nøkkelordet:
// Creates an empty slice with no elements
var sliceName [] dataType
// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}
Opprette en slice ved å bruke :=-operatoren:
// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }
Vi kan legge til flere elementer i en slice ved å bruke append-funksjonen. append-funksjonen returnerer en ny slice med de nye elementene lagt til, som vi deretter kan lagre i den opprinnelige slice-variabelen. Dette blir tydeligere med et eksempel. Grunnleggende syntaks for append-funksjonen er som følger:
append(originalSlice, newElement1, newElement2, …)
Koden under viser bruk av append-funksjonen:
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åte som vi kan få tilgang til elementer i et array, kan vi også referere til deler av et array ved å bruke følgende syntaks:
index.go
1arrayName[startIndex:endIndex + 1]
Dette vil hente ut alle elementer fra startingIndex til endingIndex. Vær oppmerksom på at vi må oppgi endingIndex + 1. Dette blir 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 henter ut elementene fra indeksene 4 til 9, inkludert elementet på indeks 4 og ekskludert elementet på indeks 9, som uttrykt i syntaksen:
index.go
1arrayName[startingIndex:endingIndex + 1]
Vi kan også lagre denne utdragne delen av arrayet i en variabel, og dermed opprette en 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 viktig å merke seg at en slik slice refererer til den delen av arrayet den ble opprettet fra. Derfor vil endringer gjort i denne slicen også påvirke det opprinnelige arrayet:
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] }
Takk for tilbakemeldingene dine!