Nie mogę dowiedzieć się, jak zainicjować zagnieżdżoną strukturę. Znajdź przykład tutaj: 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",
},
}
}
Odpowiedzi:
Cóż, czy jest jakiś konkretny powód, aby nie tworzyć własnej struktury Proxy?
W każdym razie masz 2 opcje:
We właściwy sposób wystarczy przenieść proxy do jego własnej struktury, na przykład:
Mniej poprawny i brzydki sposób, ale nadal działa:
źródło
Jeśli nie chcesz używać oddzielnej definicji struktury dla struktury zagnieżdżonej i nie lubisz drugiej metody sugerowanej przez @OneOfOne, możesz użyć tej trzeciej metody:
Możesz to sprawdzić tutaj: https://play.golang.org/p/WoSYCxzCF2
źródło
c.Proxy.Address = `127.0.0.1`
c.Proxy.Port = `8080`
Czy istnieje sposób na zainicjowanie tych wartości podczas&Configuration{}
przypisywania?Proxy
jako własnej struktury, zobaczyć pierwszy sposób odpowiedź przez @OneOfOneZdefiniuj swoją
Proxy
strukturę osobno, na zewnątrzConfiguration
, na przykład:Zobacz http://play.golang.org/p/7PELCVsQIc
źródło
P Proxy
jest tablicą?Masz również tę opcję:
źródło
Proxy
jest tablicą?Jedna trudność pojawia się, gdy chcesz utworzyć wystąpienie typu publicznego zdefiniowanego w pakiecie zewnętrznym, a ten typ osadza inne typy, które są prywatne.
Przykład:
Jak utworzyć instancję
Duck
we własnym programie? Oto najlepsze, co mogłem wymyślić:źródło
cannot refer to unexported field or method
błąd.Możesz również przydzielić
new
i zainicjować wszystkie pola ręcznieZobacz na placu zabaw: https://play.golang.org/p/sFH_-HawO_M
źródło
Możesz zdefiniować strukturę i utworzyć jej obiekt w innej strukturze, tak jak zrobiłem to poniżej:
Mam nadzieję, że ci to pomogło :)
źródło
Musisz ponownie zdefiniować nienazwaną strukturę podczas
&Configuration{}
https://play.golang.org/p/Fv5QYylFGAY
źródło