Wie kann ich beim Debuggen die zugrunde liegenden Werte von Zeigerfeldern in Go-Strukturen anzeigen?

Susan Sarandon
Freigeben: 2024-11-07 14:27:03
Original
222 Leute haben es durchsucht

How Can I Display the Underlying Values of Pointer Fields in Go Structs During Debugging?

Debuggen von Zeigerfeldern

In Go werden beim Drucken einer Struktur mit Zeigerfeldern normalerweise Speicheradressen und nicht die tatsächlichen Werte ausgegeben. Dies kann beim Debuggen unpraktisch sein, insbesondere wenn es um zahlreiche Zeigerfelder geht.

Zeigerfelder dereferenzieren

Um die zugrunde liegenden Werte von Zeigerfeldern anzuzeigen, besteht eine Möglichkeit darin, sie manuell anzuzeigen Dereferenzieren Sie jedes Feld mithilfe des Sternchenoperators (*). Dieser Ansatz wird jedoch für Strukturen mit mehreren Zeigerfeldern mühsam.

Verwendung von go-spew

Go bietet ein leistungsstarkes Tool zum Debuggen solcher Szenarien: das Paket go-spew . Dieses Paket bietet eine einfache Möglichkeit, tief in die Struktur eines beliebigen Werts einzutauchen.

Beispiel

Bedenken Sie den folgenden Code:

package main

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

type SomeStruct struct {
    Field1 string
    Field2 int
    Field3 *somePointer
}

type somePointer struct {
    field string
}

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

Wann Wenn Sie diesen Code ausführen, wird die folgende Ausgabe ausgegeben:

(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

Wie Sie sehen können, bietet das go-spew-Paket eine detailliertere und strukturiertere Ausgabe, einschließlich der zugrunde liegenden Werte der Zeigerfelder. Dies erleichtert das Debuggen und Verstehen des Inhalts von Strukturen erheblich.

Das obige ist der detaillierte Inhalt vonWie kann ich beim Debuggen die zugrunde liegenden Werte von Zeigerfeldern in Go-Strukturen anzeigen?. 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!