Как правильно написать процедуру инициализации для структуры

Имею такую структуру на GoLang, исходя из данных JSON

type Account struct {
    User struct {
        Login       string `json:"login"`
        Password    string `json:"password"`
        VillageName string `json:"VillageName"`
        Vert        int    `json:"vert"`
        Gor         int    `json:"gor"`
        Weater      int    `json:"weater"`
        Resources   []int  `json:"resources"`
        Buildings   []struct {
            Vert          int `json:"vert"`
            Gor           int `json:"gor"`
            BuildingID    int `json:"building_id,omitempty"`
            BuildingLevel int `json:"building_level"`
            Building      int `json:"building,omitempty"`
        } `json:"buildings"`
    } `json:"user"`
}

Нужна помощь в написании процедуры инициализации, потому что при создании, все поля должны быть заполнены не nil. И не до конца понимаю как быть с инициализацией других вложенных структур. Объясните пожалуйста, в GoLang новичок


Ответы (1 шт):

Автор решения: Pak Uula

В go нет понятия конструктора. Но сложился обычай называеть функции, создающие структуры Name как NewName

То есть вам нужно написать функцию NewAccount, которая инициализирует поля структуры. Набор аргументов зависит от вас. Просто имейте в виду, что в go нет перегрузки функций, поэтому если вам нужен конструктор по умолчанию, то его следует назвать DefaultAccount (нужно сказать, что это правило именования менее распространено, чем New).

→ Ссылка