Это небольшое завихрение на аналогичных сообщениях.Инициализация структуры в структуре
У меня есть пакет под названием data
, который имеет следующее:
type CityCoords struct {
Name string
Lat float64
Long float64
}
type Country struct {
Name string
Capitol *CityCoords
}
В моей основной функции я пытаюсь инициализировать Страну так:
germany := data.Country {
Name: "Germany",
Capitol: {
Name: "Berlin", //error is on this line
Lat: 52.5200,
Long: 13.4050,
},
}
Когда я строю свой проект, я получаю это ошибка, совпадающая с «именем», указанным выше, как указано выше:
missing type in composite literal
Как устранить эту ошибку?
Спасибо, K-Gun. Почему вы возвращаете указатели на Country и CountryCapital из NewCountry и NewCountryCapital? –
Нет особых причин для этого, вы можете назвать эти функции так, как хотите. Но я думаю, что в мире Go это широко используемое соглашение только из-за отсутствия ключевого слова 'new' для инициализации объекта, как на других языках. Таким образом, [Gophers] (https://blog.golang.org/gopher) предпочитают этот способ, назначая функции с префиксом 'New', и, насколько я вижу, он делает их код более читаемым, а также семантическим. –