Skivor
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
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å 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
1arrayName[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
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 extraherar elementen från index 4 till 9, inklusive elementet på index 4 men exklusive elementet på index 9, enligt syntaxen:
index.go
1arrayName[startingIndex:endingIndex + 1]
Vi kan också lagra denna extraherade del av arrayen i en variabel, vilket skapar 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 ä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
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] }
Tack för dina kommentarer!
Fråga AI
Fråga AI
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
Skivor
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
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å 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
1arrayName[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
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 extraherar elementen från index 4 till 9, inklusive elementet på index 4 men exklusive elementet på index 9, enligt syntaxen:
index.go
1arrayName[startingIndex:endingIndex + 1]
Vi kan också lagra denna extraherade del av arrayen i en variabel, vilket skapar 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 ä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
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] }
Tack för dina kommentarer!