Initialisation des pointeurs de chaîne dans les structures
Dans Go, l'initialisation d'une structure avec un pointeur vers une chaîne où le pointeur peut être nul nécessite une manipulation minutieuse . L'extrait de code suivant illustre le défi :
type Config struct { Uri *string } func init() { var config = Config{ Uri: "my:default" } }
Cela échoue avec l'erreur :
cannot use "string" (type string) as type *string in field value
Pour résoudre ce problème, on ne peut pas simplement pointer vers une valeur de chaîne constante comme dans le code ci-dessus . Au lieu de cela, une variable est nécessaire :
type Config struct { Uri *string } func init() { v := "my:default" var config = Config{ Uri: &v } }
Dans ce code, la variable v est créée et initialisée avec la valeur souhaitée. Ensuite, l'adresse de v (c'est-à-dire &v) est attribuée au champ Uri de la structure. Cela fonctionne car le champ Uri est un pointeur vers une chaîne et l'adresse de v est de type *string.
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!