Heim >Backend-Entwicklung >Golang >So verwenden Sie Golang-Scheiben

So verwenden Sie Golang-Scheiben

王林
王林Original
2023-05-15 09:42:07476Durchsuche

Golang ist eine derzeit beliebte Programmiersprache und der integrierte Datentyp Slice wird sehr häufig verwendet. Slice bezieht sich auf einen kontinuierlichen Datenblock im Speicher. Er weist die Eigenschaften einer dynamisch variablen Länge auf, die sich von einem Array unterscheidet. In diesem Artikel wird die Verwendung von Golang Slice im Detail vorgestellt.

  1. Erstellen von Slices

Es gibt zwei Möglichkeiten, Slices in Golang zu erstellen:

(1) Verwenden Sie die Funktion make(), um Slices zu erstellen.

Die Funktion make() wird in Golang verwendet, um Slices, Karten, Kanäle usw. zu erstellen. usw. Funktion. Wenn Sie die Funktion make() zum Erstellen eines Slice verwenden, müssen Sie den Slice-Typ, die Länge und die Kapazität angeben. Wie unten gezeigt:

s := make([]int, 5, 10)

Der obige Code erstellt ein Slice vom Typ int mit 5 Elementen und weist Speicherplatz für 10 Elemente zu. Unter ihnen beträgt die Länge 5 und die Kapazität 10.

(2) Verwenden Sie die Literal-Methode, um ein Slice zu erstellen

In der Literal-Methode können Sie ein Slice initialisieren und seinen Anfangswert definieren. Wie unten gezeigt:

s := []int{1, 2, 3, 4, 5}

Der obige Code erstellt ein Segment vom Typ int, das 5 Elemente enthält, und definiert seinen Anfangswert über {}.

  1. Zugriff auf Slice-Elemente

Wie Arrays kann auch auf Slice-Elemente über Indizes zugegriffen werden. Wie unten gezeigt:

s := []int{1, 2, 3, 4, 5}
s[0] // 访问第一个元素
s[1] // 访问第二个元素
...
  1. Slice-Traversal

(1) Verwenden Sie die for-Schleife, um das Slice zu durchlaufen.

Sie können die for-Schleife verwenden, um ein Slice zu durchlaufen und den Wert jedes Elements zu erhalten. Wie unten gezeigt:

s := []int{1, 2, 3, 4, 5}
for i := 0; i < len(s); i++ {
    fmt.Println(s[i])
}

(2) Verwenden Sie das Schlüsselwort „range“, um ein Slice zu durchlaufen.

Mit dem Schlüsselwort „range“ können Sie ein Slice bequemer durchqueren und den Wert jedes Elements ermitteln. Wie unten gezeigt:

s := []int{1, 2, 3, 4, 5}
for _, v := range s {
    fmt.Println(v)
}

Im obigen Code ignoriert die Verwendung von _ den Rückgabewert des Index und ruft nur den Wert des Elements ab.

  1. Scheibenschneiden

In Golang können Sie eine Scheibe schneiden, um eine kleinere Scheibe zu erhalten.

Der Schneidevorgang von Slice wird durch einen Doppelpunkt (:) implementiert. Die Zahl vor dem ersten Doppelpunkt gibt die Startposition an, und die Zahl nach dem ersten Doppelpunkt gibt die Endposition an (mit Ausnahme dieser Position), wie unten gezeigt:

s := []int{1, 2, 3, 4, 5}
s1 := s[1:3] // s1变成了[2, 3]

Im obigen Code beginnt s1 bei s[1] und geht zu s[3] (ausgenommen s[3]).

Wenn die Zahl vor dem Doppelpunkt weggelassen wird, bedeutet dies, dass mit dem ersten Element des Slice begonnen wird. Wenn die Zahl nach dem Doppelpunkt weggelassen wird, bedeutet dies, dass bis zum letzten Element des Slice abgeschnitten wird.

  1. Elemente an Slice anhängen

Slice verfügt über die Funktion, die Länge dynamisch zu ändern, sodass ein oder mehrere Elemente an das vorhandene Slice angehängt werden können.

Sie können die integrierte Funktion append() verwenden, um ein oder mehrere Elemente an das Slice anzuhängen. Die Funktion append() erweitert automatisch die Kapazität des Slice, um die neu hinzugefügten Elemente aufzunehmen.

s := []int{1, 2, 3, 4, 5}
s = append(s, 6) // 追加一个元素6
s = append(s, 7, 8, 9) // 追加三个元素7、8、9
  1. Slice löscht Elemente

In Golang verfügt Slice nicht über eine integrierte Funktion zum Löschen von Elementen, Sie können jedoch die Funktion append() in Verbindung mit der Schneideoperation verwenden, um die Funktion zum Löschen von Elementen zu erreichen.

Wenn Sie beispielsweise das dritte Element in Slice löschen möchten, können Sie die folgenden Schritte ausführen:

(1) Verwenden Sie die Schneideoperation von Slice, um das zu löschende Element zu löschen, wie unten gezeigt:

s := []int{1, 2, 3, 4, 5}
s = append(s[:2], s[3:]...)

In Verwenden Sie den obigen Code append Die ()-Funktion arbeitet mit der Schneidoperation zusammen, um das dritte Element s [2] im Slice zu löschen.

(2) Verwenden Sie eine for-Schleife, um das Slice zu durchlaufen, das zu löschende Element zu finden und es mit der Schnittoperation des Slice zu löschen.

  1. Slice-Kopie

In Golang können Sie die integrierte Funktion copy() verwenden, um ein Slice zu kopieren.

s1 := []int{1, 2, 3, 4, 5}
s2 := make([]int, len(s1))
copy(s2, s1)

Im obigen Code wird die Funktion make() verwendet, um ein Slice s2 mit der gleichen Länge wie s1 zu erstellen, und die Funktion copy() wird verwendet, um die Elemente in s1 nach s2 zu kopieren.

Wenn die Anzahl der kopierten Elemente die Kapazität des Ziel-Slices überschreitet, kopiert die Funktion copy() nur die Elemente im Ziel-Slice. Wenn das Ziel-Slice größer als das Quell-Slice ist, wird am Ende des Ziel-Slices ein 0-wertiges Element hinzugefügt.

Zusammenfassung

Durch den obigen Inhalt können wir die Hauptmerkmale von Slice zusammenfassen:

(1) Slice ist eine Sequenz mit dynamisch variabler Länge.

(2) Zu den Grundoperationen von Slice gehören das Erstellen, Zugreifen auf Elemente, Durchlaufen, Schneiden, Anhängen von Elementen, Löschen von Elementen und Kopieren.

(3) Verwenden Sie die Funktion make() oder die Literal-Methode, um ein Slice zu erstellen.

(4) Verwenden Sie das Schlüsselwort „subscript“ oder „range“, um auf Slice-Elemente zuzugreifen.

(5) Verwenden Sie die Schneideoperation, um das Slice zu teilen, verwenden Sie die Funktion append(), um Elemente anzuhängen, und die Funktion copy(), um das Slice zu kopieren.

Kurz gesagt, Slice spielt als integrierter Datentyp in Golang eine sehr wichtige Rolle. Wenn wir eine Datenstruktur mit dynamisch variabler Länge benötigen, können wir zuerst Slice verwenden.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Golang-Scheiben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn