Ich kann nicht herausfinden, wie eine verschachtelte Struktur initialisiert wird. Ein Beispiel finden Sie hier: 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",
},
}
}
Antworten:
Gibt es einen bestimmten Grund, Proxy nicht zu einer eigenen Struktur zu machen?
Auf jeden Fall haben Sie 2 Möglichkeiten:
Verschieben Sie den Proxy auf die richtige Weise einfach in seine eigene Struktur, zum Beispiel:
Der weniger richtige und hässliche Weg funktioniert aber immer noch:
quelle
Wenn Sie keine separate Strukturdefinition für verschachtelte Strukturen verwenden möchten und die von @OneOfOne vorgeschlagene zweite Methode nicht mögen, können Sie diese dritte Methode verwenden:
Sie können dies hier überprüfen: https://play.golang.org/p/WoSYCxzCF2
quelle
c.Proxy.Address = `127.0.0.1`
c.Proxy.Port = `8080`
Gibt es eine Möglichkeit, diese Werte während der&Configuration{}
Zuweisung zu initialisieren ?Proxy
als eigene Struktur definieren, siehe erste Methode in der Antwort von @OneOfOneDefinieren Sie Ihre
Proxy
Struktur separat außerhalb vonConfiguration
:Siehe http://play.golang.org/p/7PELCVsQIc
quelle
P Proxy
es sich um ein Array handelt?Sie haben diese Option auch:
quelle
Proxy
es sich um ein Array handelt?Ein Problem tritt auf, wenn Sie einen öffentlichen Typ instanziieren möchten, der in einem externen Paket definiert ist, und dieser Typ andere Typen einbettet, die privat sind.
Beispiel:
Wie instanziieren Sie ein
Duck
in Ihrem eigenen Programm? Hier ist das Beste, was ich mir vorstellen kann:quelle
cannot refer to unexported field or method
Fehler auf.Sie können auch
new
alle Felder manuell zuweisen und initialisierenSiehe auf dem Spielplatz: https://play.golang.org/p/sFH_-HawO_M
quelle
Sie können eine Struktur definieren und ihr Objekt in einer anderen Struktur erstellen, wie ich es unten getan habe:
Hoffe es hat dir geholfen :)
quelle
Sie müssen die unbenannte Struktur während neu definieren
&Configuration{}
https://play.golang.org/p/Fv5QYylFGAY
quelle