Je ne peux pas comprendre comment initialiser une structure imbriquée. Trouvez un exemple ici: http://play.golang.org/p/NL6VXdHrjh
package main
type Configuration struct {
Val string
Proxy struct {
Address string
Port string
}
}
func main() {
c := &Configuration{
Val: "test",
Proxy: {
Address: "addr",
Port: "80",
},
}
}
Réponses:
Eh bien, une raison spécifique pour ne pas faire de Proxy sa propre structure?
Quoi qu'il en soit, vous avez 2 options:
La bonne manière, déplacez simplement le proxy vers sa propre structure, par exemple:
La manière la moins appropriée et la moins efficace mais qui fonctionne toujours
la source
Si vous ne voulez pas utiliser une définition de structure distincte pour la structure imbriquée et que vous n'aimez pas la deuxième méthode suggérée par @OneOfOne, vous pouvez utiliser cette troisième méthode:
Vous pouvez le vérifier ici: https://play.golang.org/p/WoSYCxzCF2
la source
c.Proxy.Address = `127.0.0.1`
c.Proxy.Port = `8080`
est - il un moyen d'initialiser ces valeurs lors de l'&Configuration{}
affectation?Proxy
comme sa propre structure, voir la première méthode dans la réponse de @OneOfOneDéfinissez votre
Proxy
structure séparément, en dehors deConfiguration
, comme ceci:Voir http://play.golang.org/p/7PELCVsQIc
la source
P Proxy
c'était un tableau?Vous avez également cette option:
la source
Proxy
c'était un tableau?Un problème survient lorsque vous souhaitez instancier un type public défini dans un package externe et que ce type intègre d'autres types qui sont privés.
Exemple:
Comment instanciez-vous un
Duck
dans votre propre programme? Voici le meilleur que je pourrais trouver:la source
cannot refer to unexported field or method
erreur.Vous pouvez également allouer en utilisant
new
et initialiser tous les champs à la mainVoir dans le terrain de jeu: https://play.golang.org/p/sFH_-HawO_M
la source
Vous pouvez définir une structure et créer son objet dans une autre structure comme je l'ai fait ci-dessous:
J'espère que cela vous a aidé :)
la source
Vous devez redéfinir la structure sans nom pendant
&Configuration{}
https://play.golang.org/p/Fv5QYylFGAY
la source