Dies ist eine kleine Wendung bei ähnlichen Posts.Initialisieren einer Struktur in einer Struktur
Ich habe ein Paket data
genannt, die Folgendes hat:
type CityCoords struct {
Name string
Lat float64
Long float64
}
type Country struct {
Name string
Capitol *CityCoords
}
In meiner Hauptfunktion ich versuche, ein Land wie so initialisiert:
germany := data.Country {
Name: "Germany",
Capitol: {
Name: "Berlin", //error is on this line
Lat: 52.5200,
Long: 13.4050,
},
}
Wenn ich mein Projekt bauen, bekomme ich diese Fehler, der mit dem "Namen" zugeordnet wurde, wie oben angegeben:
missing type in composite literal
Wie behebe ich diesen Fehler?
Danke, K-Gun. Warum geben Sie bei NewCountry und NewCountryCapital Tipps für Country und CountryCapital? –
Es gibt keinen bestimmten Grund, dies zu tun, Sie können diese Funktionen wie gewünscht benennen. Aber ich denke, in der Go-Welt ist dies eine weit verbreitete Konvention, nur weil es kein 'neues' Schlüsselwort gibt, um ein Objekt wie in anderen Sprachen zu initialisieren. Also, [Gophers] (https://blog.golang.org/gopher) bevorzugen diesen Weg, indem sie Funktionen mit 'New' Präfix benennen und soweit ich sehe, macht sie ihren Code lesbarer, auch semantisch. –