Heim >Backend-Entwicklung >Golang >Lassen Sie uns über die Methode zur Initialisierung der Datenstruktur in GO sprechen (mit Codebeispielen).
Dieser Artikel stellt Ihnen die Methode zur Initialisierung der Datenstruktur in der GO-Sprache vor. Schauen wir uns an, wie man sie verwendet. Ich hoffe, dass sie für alle hilfreich ist.
GO bietet 2 Schlüsselwörter zum Initialisieren der Datenstruktur
Aber manchmal verwende ich auch geschweifte Klammern, um direkt zu initialisieren, zum Beispiel:
name := []string{"xiaomotong","bob","marry"}
Im obigen Fall sind die Werte Die auszufüllenden Daten wurden während der Initialisierung klar definiert. Sie können die oben genannte Methode verwenden. In den meisten Fällen sind die Daten jedoch während der Initialisierung noch unbekannt . Methode
make ist ein von golang bereitgestelltes Schlüsselwort. Es wird hauptsächlich zum Initialisieren integrierter Datenstrukturen verwendet. Die Datentypen, die von make initialisiert werden können, sind:
Beim Initialisieren können wir beispielsweise so schreiben:
strs := make([]string, 0, 10)myMap := make(map[string]string, 10)ch := make(chan struct{}, 10)
an Sehen Sie, dass make die Erstellung und Initialisierung der oben genannten 3 Typen
unterstützt.Gemäß der Erklärung wissen wir, dass der Typ des Rückgabewerts von
makemit dem Typ der ausgefüllten Parameter übereinstimmt. Wir geben den Slice-Typ ein, dann ist der Rückgabewert der entsprechende Rückgabewert anderer Typen. Daran ist nichts auszusetzen
Vorsicht Fat Fish kann sehen, dass make, wie bereits erwähnt, nur zum Initialisieren der von Golang bereitgestellten integrierten Datenstrukturen geeignet ist. Zu diesem Zeitpunkt müssen Sie noch
newverwenden Kümmere dich um die Dinge
Das Initialisieren der Datenstruktur mit new kann wie folgt geschrieben werden:Anpassen einer Struktur mit 2 Mitgliedern, Alter und Name
type T struct{ age int name string}func main(){ t := new(T) fmt.Println("t.name == ",t.name) fmt.Println("t.age == ",t.age)}
# go run main.got.name ==t.age == 0
Natürlich wurde die Datenstruktur für mich initialisiert, aber die Daten sind alle
Natürlich können wir auch so schreiben:
func main(){ a := new(int) fmt.Println("a == ",a) fmt.Println("*a == ",*a)}Der Programmausführungseffekt lautet wie folgt:
# go run main.goa == 0xc420018078
*a == 0
Gemäß den Ergebnissen der Programmausführung wissen wir, dass new einen Zeiger zurückgibt und der entsprechende Wert an der Speicheradresse, auf die dieser Zeiger zeigt, ein
Schauen Sie sich das an in der Beschreibung des neuen Quellcodes
Golang-Quellcode besagt, dass new Der erste Parameter ist ein Datentyp, kein Wert, und der Rückgabewert von
newist ein Zeiger, der gemäß dem Parameter nullwertigen Speicher zuweist Typ
Daher ist die Datenstruktur, die wir oben gesehen haben, aus neuen, gedruckten Daten Sie sind alle Nullwerte der entsprechenden TypenDer Unterschied zwischen make und new
make gibt eine Referenz zurück, bei der es sich um den Typ
Typehandelt.
Das obige ist der detaillierte Inhalt vonLassen Sie uns über die Methode zur Initialisierung der Datenstruktur in GO sprechen (mit Codebeispielen).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!