Go Newbie question: J'essaie d'initier la structure suivante, avec une valeur par défaut. Je sais que cela fonctionne si "Uri" est une chaîne et non un pointeur vers une chaîne (* chaîne). Mais j'ai besoin de ce pointeur pour comparer deux instances de la structure, où Uri serait nul s'il n'était pas défini, par exemple quand je démarshal le contenu d'un fichier json. Mais comment puis-je initialiser une telle structure correctement en tant que "défaut statique"?
type Config struct {
Uri *string
}
func init() {
var config = Config{ Uri: "my:default" }
}
Le code ci-dessus échoue avec
cannot use "string" (type string) as type *string in field value
Il n'est pas possible d'obtenir l'adresse (au point) d'une valeur constante, c'est pourquoi votre initialisation échoue. Si vous définissez une variable et passez son adresse, votre exemple fonctionnera.
type Config struct {
Uri *string
}
func init() {
v := "my:default"
var config = Config{ Uri: &v }
}