Maison  >  Article  >  développement back-end  >  Comment initialiser des pointeurs de chaîne dans des structures en Go ?

Comment initialiser des pointeurs de chaîne dans des structures en Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-12 17:35:02798parcourir

How to Initialize String Pointers in Structs in Go?

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!

Déclaration:
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