Initialiser un imbriquée struct dans Golang
Je ne peux pas comprendre comment initialiser un imbriquée struct. Trouver 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",
},
}
}
- Juste aller de l'apprentissage et eu exactement la même question. Vous pouvez omettre les types d'éléments de tableaux et de cartes, mais pas pour les sous structures. Illogique et peu pratique. Quelqu'un peut m'expliquer pourquoi?
Vous devez vous connecter pour publier un commentaire.
Eh bien, une raison pour ne pas faire de Procuration de sa propre structure?
De toute façon, vous avez 2 options:
La bonne façon, il suffit de déplacer proxy pour son propre structure, par exemple:
Le moins bon et le truand chemin, mais fonctionne encore:
Si vous ne voulez pas aller avec distinct struct définition pour imbriquée struct et vous n'aimez pas la deuxième méthode proposée par @OneOfOne vous pouvez utiliser cette troisième méthode:
Vous pouvez le vérifier ici: https://play.golang.org/p/WoSYCxzCF2
c.Proxy.Address = `127.0.0.1`
c.Proxy.Port = `8080`
Est-il un moyen pour initialiser ces valeurs au cours de&Configuration{}
affectation?Proxy
comme sa propre structure, voir la première méthode dans la réponse par @OneOfOneDéfinir votre
Proxy
struct séparément, en dehors deConfiguration
, comme ceci:Voir http://play.golang.org/p/7PELCVsQIc
Vous avez cette option également:
Un gotcha se pose lorsque vous souhaitez instancier un public type défini dans un package externe et le type incorpore des autres types qui sont privés.
Exemple:
Comment instancier un
Duck
dans votre propre programme? Voici le mieux que je pouvais venir avec:Vous avez également pu allouer à l'aide de
new
et initialiser tous les champs à la mainVoir dans l'aire de jeux: https://play.golang.org/p/sFH_-HawO_M
Vous pouvez définir une structure et de créer son objet dans une autre structure comme j'ai fait ci-dessous:
Espère que cela vous a aidé 🙂
Vous avez besoin de redéfinir le sans nom struct pendant
&Configuration{}
https://play.golang.org/p/Fv5QYylFGAY