Champs de déréférencement pour le débogage
Lors de l'impression d'une structure Go contenant des pointeurs, la sortie affiche généralement les adresses mémoire au lieu des valeurs réelles. Pour améliorer le débogage, il est souhaitable d'imprimer les valeurs déréférencées.
Solution : Utilisation du package go-spew
Le package go-spew fournit une solution pratique. Il peut être utilisé pour vider une structure, y compris des champs qui sont des pointeurs, affichant également les valeurs déréférencées.
Exemple :
Considérez la structure Go suivante :
package main import ( "github.com/davecgh/go-spew/spew" ) type ( SomeStruct struct { Field1 string Field2 int Field3 *somePointer } somePointer struct { field string } )
Dans la fonction principale, créez une instance de SomeStruct et transmettez-la à spew.Dump :
func main() { s := SomeStruct{ Field1: "Yahoo", Field2: 500, Field3: &somePointer{"I want to see what is in here"}, } spew.Dump(s) }
Cela affichera 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" }) }
La valeur déréférencée souhaitée ("Je veux voir ce qu'il y a ici") est désormais visible sous le champ Field3. Cela permet une inspection facile des pointeurs dans des structures complexes pendant le débogage.
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!