Wie kann ich dereferenzierte Werte von Zeigern in Go-Strukturen für ein effektives Debugging drucken?

Susan Sarandon
Freigeben: 2024-11-06 08:43:02
Original
939 Leute haben es durchsucht

How Can I Print Dereferenced Values of Pointers in Go Structs for Effective Debugging?

Dereferenzierung von Feldern zum Debuggen

Beim Drucken einer Go-Struktur, die Zeiger enthält, zeigt die Ausgabe normalerweise Speicheradressen anstelle der tatsächlichen Werte an. Um das Debuggen zu verbessern, ist es wünschenswert, die dereferenzierten Werte auszudrucken.

Lösung: Verwendung des go-spew-Pakets

Das go-spew-Paket bietet eine praktische Lösung. Es kann verwendet werden, um eine Struktur zu sichern, einschließlich Feldern, die Zeiger sind, und auch die dereferenzierten Werte anzuzeigen.

Beispiel:

Betrachten Sie die folgende Go-Struktur:

package main

import (
  "github.com/davecgh/go-spew/spew"
)

type (
  SomeStruct struct {
    Field1 string
    Field2 int
    Field3 *somePointer
  }
  somePointer struct {
    field string
  }
)
Nach dem Login kopieren

Erstellen Sie in der Hauptfunktion eine Instanz von SomeStruct und übergeben Sie sie an spew.Dump:

func main() {
  s := SomeStruct{
    Field1: "Yahoo",
    Field2: 500,
    Field3: &somePointer{"I want to see what is in here"},
  }
  spew.Dump(s)
}
Nach dem Login kopieren

Dadurch wird die folgende Ausgabe gedruckt:

(main.SomeStruct) {
 Field1: (string) "Yahoo",
 Field2: (int) 500,
 Field3: (*main.somePointer)(0x2102a7230)({
  field: (string) "I want to see what is in here"
 })
}
Nach dem Login kopieren

Der gewünschte dereferenzierte Wert („Ich möchte sehen, was hier drin ist“) ist jetzt unter dem Feld Field3 sichtbar. Dies ermöglicht eine einfache Überprüfung von Zeigern in komplexen Strukturen während des Debuggens.

Das obige ist der detaillierte Inhalt vonWie kann ich dereferenzierte Werte von Zeigern in Go-Strukturen für ein effektives Debugging drucken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!