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

bookSkiver

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

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å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

index.go

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

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 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

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Vi kan også lagre denne utdragne delen av arrayet i en variabel, og dermed opprette en 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 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

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

Hva vil være utdataene for følgende kode?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

bookSkiver

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

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å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

index.go

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

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 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

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Vi kan også lagre denne utdragne delen av arrayet i en variabel, og dermed opprette en 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 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

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

Hva vil være utdataene for følgende kode?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 3
some-alt