2
これは同様のポストの小さなひねりです。構造体内の構造体を初期化する
私はパッケージには、以下を有している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,
},
}
私は私のプロジェクトをビルドするとき、私はこれを取得私が上記にフラグを立てた「名前」と一致しているエラー:
このエラーを解決するにはどうすればよいですか?
ありがとう、Kガン。なぜあなたはNewCountryとNewCountryCapitalからCountryとCountryCapitalへのポインタを返すのですか? –
特別な理由はありませんが、その機能の名前を自由に設定できます。しかし、Goの世界では、他の言語のようにオブジェクトを初期化するための 'new'キーワードがないため、これは広く使われている規約です。ですから、[Gophers](https://blog.golang.org/gopher)は、 'New'接頭辞を付けて関数の名前を付けることで、そのコードを読みやすく、セマンティックなものにしています。 –