Initialiser des pointeurs de chaîne dans des structures
L'initialisation d'un pointeur de chaîne dans une structure peut être difficile, en particulier lorsque vous avez besoin que le pointeur soit nul lorsque désarmé. L'extrait de code suivant illustre une tentative d'initialisation d'une structure avec une valeur de pointeur de chaîne par défaut :
type Config struct { Uri *string } func init() { var config = Config{ Uri: "my:default" } }
Cependant, ce code échoue avec l'erreur :
cannot use "string" (type string) as type *string in field value
Cette erreur se produit car vous ne peut pas obtenir l'adresse (au point) d'une valeur constante. Pour résoudre ce problème, vous pouvez définir une variable et transmettre son adresse à la place. Voici comment procéder :
type Config struct { Uri *string } func init() { v := "my:default" var config = Config{ Uri: &v } }
Maintenant, l'initialisation réussit car v est une variable dont l'adresse peut être obtenue à l'aide de l'opérateur &. Cela vous permet de faire pointer le champ Uri vers une valeur nulle lorsqu'il n'est pas défini ou vers une valeur de chaîne spécifique lorsqu'il est défini.
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!