Maison > développement back-end > Golang > le corps du texte

Comment puis-je afficher les valeurs sous-jacentes des champs de pointeur dans les structures Go pendant le débogage ?

Susan Sarandon
Libérer: 2024-11-07 14:27:03
original
221 Les gens l'ont consulté

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

Débogage des champs de pointeur

Dans Go, l'impression d'une structure contenant des champs de pointeur génère généralement des adresses mémoire plutôt que les valeurs réelles. Cela peut être gênant lors du débogage, en particulier lorsqu'il s'agit de nombreux champs de pointeur.

Déréférencement des champs de pointeur

Pour afficher les valeurs sous-jacentes des champs de pointeur, une option consiste à manuellement déréférencez chaque champ à l’aide de l’opérateur astérisque (*). Cependant, cette approche devient fastidieuse pour les structures comportant plusieurs champs de pointeur.

Utiliser go-spew

Go offre un outil puissant pour déboguer de tels scénarios : le package go-spew . Ce package fournit un moyen simple d'approfondir la structure de n'importe quelle valeur.

Exemple

Considérez le code suivant :

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)
}
Copier après la connexion

Quand vous exécutez ce code, il imprime le résultat suivant :

(main.SomeStruct) {
 Field1: (string) "Yahoo",
 Field2: (int) 500,
 Field3: (*main.somePointer)(0x2102a7230)({
  field: (string) "I want to see what is in here"
 })
}
Copier après la connexion

Comme vous pouvez le voir, le package go-spew fournit une sortie plus détaillée et structurée, y compris les valeurs sous-jacentes des champs de pointeur. Cela facilite grandement le débogage et la compréhension du contenu des structures.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!