Heim >Backend-Entwicklung >Golang >Go-Zeiger: Wann sollten „&' und „*' verwendet werden?
Zeiger (& und *) verstehen
Go erfordert oft die Übergabe von Variablen als Argumente an Funktionen. Es kann jedoch verwirrend sein, wenn bei solchen Vorgängen Fehler auftreten. In diesem Artikel wird der Unterschied zwischen &- und *-Zeigern erläutert und erklärt, wann jeder verwendet werden sollte.
Zeiger und Adressen
Zeiger sind Variablen, die die Adresse einer anderen Variablen speichern Erinnerung. Der &-Operator ruft die Adresse einer Variablen ab. Wenn „u“ beispielsweise eine Benutzerstruktur ist, gibt „&u“ die Adresse von „u“ zurück.
JSON mit & dekodieren
Um den &-Operator zu verstehen Betrachten Sie den folgenden Code:
var u User if err := decoder.Decode(&u); err != nil { // Code to handle error... }
Die Funktion json.Decode erwartet einen Zeiger zum Dekodieren der JSON-Daten. In diesem Beispiel ist „u“ nur eine Benutzerstruktur, kein Zeiger. Durch die Verwendung von „&u“ stellen wir der Funktion die Adresse „u“ zur Verfügung, sodass die Dekodierung erfolgreich ist.
Zeiger und Umleitung
Der -Operator kann als „Umleitung“ auf den an der Adresse eines Zeigers gespeicherten Wert betrachtet werden. Wenn der Zeiger „x“ beispielsweise die Adresse von „y“ speichert, gibt uns „x“ den Wert von „y“.
Betrachten Sie den folgenden Code:
x := new(User) // Creates a pointer to a User struct *x = y // Assigns the value of 'y' to the struct pointed to by 'x' fmt.Println(*x) // Prints the value of 'y'
Zusammenfassung der Verwendung
Das obige ist der detaillierte Inhalt vonGo-Zeiger: Wann sollten „&' und „*' verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!