Heim >Backend-Entwicklung >Golang >Wie drucke ich die Adresse einer Struktur in Go korrekt aus?

Wie drucke ich die Adresse einer Struktur in Go korrekt aus?

DDD
DDDOriginal
2024-11-29 12:38:12229Durchsuche

How to Correctly Print the Address of a Struct in Go?

Das Drucken von Strukturadressen in Go verstehen

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!

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