Maison > développement back-end > Golang > le corps du texte

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

Barbara Streisand
Libérer: 2024-11-19 10:40:03
original
842 Les gens l'ont consulté

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" }
}
Copier après la connexion

Cependant, ce code échoue avec l'erreur :

cannot use "string" (type string) as type *string in field value
Copier après la connexion

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 }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal