In Go ist es von entscheidender Bedeutung, das Konzept des Druckens der Adresse einer Strukturvariablen zu verstehen. Schauen wir uns eine bestimmte Abfrage und ihre Lösung genauer an.
Abfrage:
Ein Benutzer, der Go zum ersten Mal begegnet, möchte die Adresse einer Strukturvariablen, r, ausdrucken. Trotz Verwendung des erwarteten &-Operators zeigt die Ausgabe {15 6} anstelle der erwarteten Adresse.
Code-Snippet:
type Rect struct { width int name int } func main() { r := Rect{4, 6} p := &r p.width = 15 fmt.Println("-----", &p, r, p, &r) }
Analyse:
Standardmäßig verwendet fmt.Println() das %v-Format, das Strukturen speziell behandelt, indem ihre Felder gedruckt werden. Um die Adresse direkt auszudrucken, ist eine bestimmte Formatzeichenfolge erforderlich.
Lösung:
Um die Adresse von r auszudrucken, muss das Verb %p mit einem Format verwendet werden Zeichenfolge. Dieses Verb gibt speziell das Drucken eines Zeigerwerts an.
fmt.Printf("%p\n", &r)
Dadurch wird die Adresse von r korrekt ausgegeben, z. B. 0x414020.
Zusätzlich kann die Adresse mit in einer Variablen gespeichert werden die folgende Syntax:
addr := &r
Jetzt hält addr den Zeiger auf r.
Das obige ist der detaillierte Inhalt vonWie drucke ich die Adresse einer Struktur in Go korrekt aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!