Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Skivor | Arrayer och Slices
Introduktion till Golang

bookSkivor

Slices liknar arrayer, men de har dynamiska längder, vilket gör dem till ett mer flexibelt alternativ än arrayer.

För att skapa en slice används samma syntax som för arrayer, men i detta fall utelämnas storleken.

Skapa en slice med hjälp av var-nyckelordet:

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

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

Skapa en slice med :=-operatorn:

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

Ytterligare element kan läggas till i en slice med funktionen append. Funktionen append returnerar en ny slice med de tillagda elementen, som sedan kan lagras i den ursprungliga slice-variabeln. Detta blir tydligare med ett exempel. Den grundläggande syntaxen för funktionen append är följande:

append(originalSlice, newElement1, newElement2, …)

Följande kod visar användningen av 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å samma sätt som vi kan komma åt element i en array, kan vi även referera till delar av en array med följande syntax:

index.go

index.go

copy
1
arrayName[startIndex:endIndex + 1]

Det kommer att extrahera alla element från startingIndex till endingIndex. Observera att vi behöver ange endingIndex + 1. Detta blir tydligare med ett exempel. Till exempel:

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 extraherar elementen från index 4 till 9, inklusive elementet på index 4 men exklusive elementet på index 9, enligt syntaxen:

index.go

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Vi kan också lagra denna extraherade del av arrayen i en variabel, vilket skapar 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 är viktigt att notera att en sådan slice refererar till den del av arrayen som den skapades från. Följaktligen kommer alla ändringar som görs i slicen även att påverka den ursprungliga arrayen:

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

Vad kommer följande kod att skriva ut?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 1.96

bookSkivor

Svep för att visa menyn

Slices liknar arrayer, men de har dynamiska längder, vilket gör dem till ett mer flexibelt alternativ än arrayer.

För att skapa en slice används samma syntax som för arrayer, men i detta fall utelämnas storleken.

Skapa en slice med hjälp av var-nyckelordet:

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

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

Skapa en slice med :=-operatorn:

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

Ytterligare element kan läggas till i en slice med funktionen append. Funktionen append returnerar en ny slice med de tillagda elementen, som sedan kan lagras i den ursprungliga slice-variabeln. Detta blir tydligare med ett exempel. Den grundläggande syntaxen för funktionen append är följande:

append(originalSlice, newElement1, newElement2, …)

Följande kod visar användningen av 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å samma sätt som vi kan komma åt element i en array, kan vi även referera till delar av en array med följande syntax:

index.go

index.go

copy
1
arrayName[startIndex:endIndex + 1]

Det kommer att extrahera alla element från startingIndex till endingIndex. Observera att vi behöver ange endingIndex + 1. Detta blir tydligare med ett exempel. Till exempel:

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 extraherar elementen från index 4 till 9, inklusive elementet på index 4 men exklusive elementet på index 9, enligt syntaxen:

index.go

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Vi kan också lagra denna extraherade del av arrayen i en variabel, vilket skapar 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 är viktigt att notera att en sådan slice refererar till den del av arrayen som den skapades från. Följaktligen kommer alla ändringar som görs i slicen även att påverka den ursprungliga arrayen:

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

Vad kommer följande kod att skriva ut?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 3
some-alt