Heim > Backend-Entwicklung > Golang > So verwenden Sie die Schlüsselwörter new, make und append von Golang-Funktionen

So verwenden Sie die Schlüsselwörter new, make und append von Golang-Funktionen

WBOY
Freigeben: 2023-05-16 08:17:05
Original
1309 Leute haben es durchsucht

Golang ist eine Programmiersprache mit hoher Entwicklungseffizienz, hoher Laufgeschwindigkeit und hohen Fähigkeiten zur gleichzeitigen Verarbeitung. Sie wird häufig in der Netzwerkprogrammierung, Serverentwicklung, Cloud Computing und anderen Bereichen verwendet. Im Golang-Programmierungsprozess verwenden wir häufig Schlüsselwörter wie „new“, „make“ und „append“, und wenn wir lernen, sie richtig zu verwenden, können wir effizienter und robuster Code schreiben.

In diesem Artikel wird die Verwendung von new, make und append in Golang ausführlich vorgestellt, um den Lesern zu helfen, diese Schlüsselwörter besser zu beherrschen.

1. Das neue Schlüsselwort

new ist eine integrierte Funktion. Ihre Funktion besteht darin, einen Speicherplatz auf dem Heap zuzuweisen und die Adresse des Speicherplatzes zurückzugeben. Das heißt, new gibt einen Zeiger vom Typ zurück, der auf den Nullwert eines Werts zeigt.

Im Allgemeinen verwenden wir die neue Funktion, um den Speicherplatz einer Struktur wie folgt zuzuweisen:

package main

import "fmt"

type Person struct {
    Name string
    Age int
}

func main() {
    p := new(Person)
    fmt.Println(p.Name, p.Age)
}
Nach dem Login kopieren

Das Ausgabeergebnis lautet:

"" 0
Nach dem Login kopieren

Wie Sie dem Ausgabeergebnis entnehmen können, wird der Speicherplatz der Struktur mithilfe der zugewiesen neue Funktionsfelder werden auf Nullwerte gesetzt. Es ist zu beachten, dass die neue Funktion nur Speicherplatz zuweist und den zugewiesenen Speicherplatz nicht automatisch initialisiert.

2. Make-Schlüsselwort

make ist ebenfalls eine integrierte Funktion, ihre Funktion unterscheidet sich jedoch geringfügig von der der neuen Funktion. Die Funktion von make besteht darin, ein Slice, eine Karte oder einen Kanal zu erstellen und einen Wert dieses Typs zurückzugeben.

Slicing bezieht sich auf eine Folge von Elementen desselben Typs variabler Länge. Durch die Verwendung von Slicing kann der Speicherplatz effizienter verwaltet werden. Der folgende Code zeigt die Verwendung der Make-Funktion zum Erstellen eines String-Slice mit 3 Elementen:

slice := make([]string, 3)
Nach dem Login kopieren

Beim Erstellen eines Slice können Sie dessen Kapazität über den zweiten Parameter angeben. Zum Beispiel:

slice := make([]string, 3, 5)
Nach dem Login kopieren

Das hier erstellte String-Slice hat eine Länge von 3 und eine Kapazität von 5. Es ist zu beachten, dass das System bei Verwendung von make zum Erstellen eines Slice den neu zugewiesenen Speicherplatz initialisiert und alle darin enthaltenen Elemente auf Nullwerte initialisiert.

Zusätzlich zum Slicing kann die Make-Funktion auch Karten und Kanäle erstellen. Im Folgenden wird ihre Verwendung vorgestellt:

  1. Mapping erstellen

Mapping bezieht sich auf eine Reihe von Schlüssel-Wert-Strukturen, wobei jedes Element aus einem eindeutigen Schlüssel und einem entsprechenden Wert besteht. Mit der Make-Funktion können Sie Zuordnungen ganz einfach wie folgt erstellen:

m := make(map[string]string)
Nach dem Login kopieren

Die mit der Make-Funktion erstellte Zuordnung wurde initialisiert und kann direkt bedient werden.

  1. Kanal erstellen

Kanal ist eine Methode zum gleichzeitigen Datenaustausch, die in Golang sehr wichtig ist. Die Verwendung der Make-Funktion zum Erstellen eines Kanals kann erreicht werden, indem der Typ des Kanalelements wie folgt angegeben wird:

ch := make(chan int)
Nach dem Login kopieren

Beim Erstellen eines Kanals können Sie auch die Puffergröße dafür festlegen, indem Sie den zweiten Parameter angeben:

ch := make(chan int, 10)
Nach dem Login kopieren

3. Das append-Schlüsselwort

append ist ebenfalls eine integrierte Funktion, die einen oder mehrere Werte an das Ende eines Slice anhängt und das aktualisierte Slice zurückgibt. Die Syntax der

append-Funktion lautet wie folgt:

append(slice []type, elems ...type) []type
Nach dem Login kopieren

wobei „slice“ das anzuhängende Slice darstellt und „elems“ den an das Slice anzuhängenden Wert darstellt. Es ist zu beachten, dass elems ein variabler Parameter ist und beliebig viele Werte übergeben werden können.

Das Folgende ist ein Beispiel für die Verwendung der Append-Funktion zum dynamischen Hinzufügen von Elementen zu einem Slice:

package main

import "fmt"

func main() {
    var slice []int
    for i := 0; i < 10; i++ {
        slice = append(slice, i)
        fmt.Println(slice)
    }
}
Nach dem Login kopieren

Das Ausgabeergebnis lautet:

[0]
[0 1]
[0 1 2]
...
Nach dem Login kopieren

Wie aus dem Ausgabeergebnis ersichtlich ist, wird bei jedem Aufruf der Append-Funktion ein neues erstellt Das Element wird an das Ende des Slice angehängt.

Es ist zu beachten, dass die Anhängefunktion den Speicherplatz neu zuweist und die Originaldaten in den neuen Speicherplatz kopiert, wenn die Anzahl der anzuhängenden Elemente größer ist als der verbleibende Speicherplatz des Slice. Daher sollten Sie bei Verwendung der Append-Funktion versuchen, eine unzureichende Slice-Kapazität zu vermeiden, um Leistungseinbußen zu vermeiden.

Zusammenfassung

In diesem Artikel wird die Verwendung der Schlüsselwörter new, make und append in Golang ausführlich vorgestellt. Durch das Erlernen der Verwendung dieser Schlüsselwörter können wir die grundlegende Syntax von Golang besser beherrschen und effizienten und robusten Code schreiben. In tatsächlichen Projekten sollten wir diese Schlüsselwörter entsprechend den spezifischen Anforderungen verwenden, um den Code eleganter und effizienter zu gestalten.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Schlüsselwörter new, make und append von Golang-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage