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

Comment initialiser des pointeurs de chaîne dans Go Structs ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-19 10:40:03853parcourir

How to Initialize String Pointers in Go Structs?

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!

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