Maximale Kapazität
Lektion 8 von 21 im Kurs Slices und Maps in GoLang von Coddy.
In der letzten Lektion haben wir über die Kapazität gesprochen und gelernt, dass beim Slicing die Kapazität von der Startposition bis zum Ende des Slices bestimmt wird. Wir können jedoch den Slice-Operator oder -Ausdruck verwenden, um die Kapazität zu steuern oder zu begrenzen. Gehen wir ein Beispiel durch:
Wir wissen, dass die Syntax des Slice-Operators so aussieht: <strong>[start:stop]</strong>, aber wir können diesem Operator eine dritte Option hinzufügen, sodass er so aussieht: <strong>[start:stop:capacity]</strong>. Die dritte Option ermöglicht es uns, die maximale Kapazität des Slices festzulegen.
Mit einem vollständigen Slice-Ausdruck können Sie also einen Slice slicen und gleichzeitig die Kapazität des von diesem Slice-Ausdruck zurückgegebenen Slices begrenzen.
Angenommen, wir haben einen Slice wie diesen:
numbers := []int{1, 2, 3, 4, 5, 6}Lassen Sie uns diesen slicen, um 3 Elemente zu erhalten:
numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4]Wir können dies so darstellen:
Hier erhalten wir also 3 Elemente und eine Kapazität von 5, genau wie es dieses Bild zeigt.
Wenn wir nun die Kapazität im Slice-Operator verwenden und sie zum Beispiel auf 4 setzen:
numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4:4]Stellen Sie sich die Kapazität einfach wie die Elementposition hier vor; wir setzen sie auf 4. Beachten Sie jedoch, dass die Stopp-Position nicht größer als die Kapazitätsposition sein darf.
Aufgabe
EinfachIm gegebenen Code definieren wir einen Slice namens coddy mit 6 Elementen.
- Führen Sie eine Slicing-Operation durch, um die Elemente "Tech" und "Learn Golang" aus dem coddy-Slice zu extrahieren, während Sie sicherstellen, dass die Kapazität 4 beträgt.
Probier es selbst
package main
import (
"fmt"
)
func main() {
// Ein Slice mit 6 Elementen
coddy := []string{"Coddy","Tech","Learn Golang","Learn JavaScript","C++","C#"}
// Hier das Slicing durchführen
// Die Elemente auf dem Bildschirm ausgeben
fmt.Println("Elements:" ?)
// Die Kapazität ausgeben
fmt.Println("Capacity:" ?)
}
Alle Lektionen in Slices und Maps in GoLang
1Einführung
Einführung