Slice-Indizierung in Go verstehen: Warum s[lo:hi] bei Element hi-1 endet
In Go stellen Slices Sequenzen von dar Elemente. Beim Slicing eines Slice gibt der Ausdruck s[lo:hi] ein neues Slice zurück, das Elemente vom Index lo (inklusive) bis hi (exklusiv) enthält.
Begründung für das Inclusive-Exclusive-Slicing
Die Wahl, inklusive-exklusives Slicing (wobei hi-1 als Obergrenze verwendet wird) anstelle von zu verwenden Das inklusive-inklusive Slicing (wobei hi als Obergrenze verwendet wird) basiert auf mehreren Vorteilen:
-
Einfachheit der Zeigerarithmetik: Go-Slices werden als Zeiger gespeichert und das inklusive- Die exklusive Methode ermöglicht eine einfache Zeigerarithmetik. Jedes Element in einem Slice befindet sich an der Speicheradresse des Slice-Zeigers plus seinem Index, was Zeigeroperationen unkompliziert macht.
-
Dienstprogramm zur Slice-Länge: Die Länge eines Slice ist auch die Entspricht dem Index, an dem es in Scheiben geschnitten werden kann, um das Original-Slice zu erhalten. Beispielsweise stellt s[0:len(s)] die Original-Slice-s bereit. Dies vereinfacht Vorgänge im Zusammenhang mit der Slice-Manipulation.
-
Nicht überlappende Indizes: Inklusiv-exklusives Slicing stellt sicher, dass sich die Indizes nachfolgender Slices nicht überlappen. Wenn wir Slices s[lo1:hi1], s[hi1:hi2], s[hi2:hi3] usw. haben, decken diese Slices zusammen das gesamte ursprüngliche Slice s ab.
-
Vereinfachte Aufteilung Algorithmus: Diese Slicing-Methode vereinfacht Algorithmen, die Arrays basierend auf nicht aufeinanderfolgenden Ganzzahlen aufteilen. Im Gegensatz dazu erfordert das Inclusive-Inclusive-Slicing eine komplexere Logik, um das gleiche Ergebnis zu erzielen.
Beispiel:
Betrachten Sie den folgenden Slice:
p := []int{0, 10, 20, 30, 40, 50}
Nach dem Login kopieren
- p[0:3] würde [0, 10, 20] zurückgeben, ohne Element 30.
- p[3:6] würde [30, 40, 50] zurückgeben, einschließlich Element 30.
- p[0:len(p)] würde den ursprünglichen Slice p zurückgeben.
Fazit:
Das Inklusive-Exklusive Die Slicing-Methode in Go bietet eine einfache Zeigerarithmetik, eine praktische Slice-Manipulation und erleichtert die Erstellung effizienter Algorithmen für Slice-Operationen.
Das obige ist der detaillierte Inhalt vonWarum schließt Gos Slice-Indexierung „s[lo:hi]' das „hi'-te Element aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!