Сокращенный пример двух пользовательских типов ниже. «Вопрос» содержит «SavedQuestion», а «SavedQuestion» содержит «Вопрос».
Ошибки: 1. Недопустимый цикл в объявлении SavedQuestion 2. Недопустимый рекурсивный тип Вопрос
type Question struct {
ID int `json:"id"`
Name string `json:"name"`
QueryText string `json:"query_text"`
SavedQuestion SavedQuestion `json:"saved_question"`
}
type SavedQuestion struct {
ID int `json:"id"`
Index int `json:"index"`
Name string `json:"name"`
Packages PackageSpecList `json:"packages"`
QueryText string `json:"query_text"`
Question Question `json:"question"`
}
I Я моделирую некоторые типы для использования сторонних API ... Объекты сторонних API моделируются таким образом. Кажется совершенно нормальным, что «SavedQuestion» - это отдельный тип, который по существу содержит «Вопрос» вместе с кучей других данных о нем ... Я могу видеть l oop с «Вопросом», также содержащим «SavedQuestion» «... но это то, что делает API. Как вы можете видеть из тегов json, я просто пытаюсь смоделировать, что именно отправляет API, чтобы я мог выполнить маршал / анмаршал и др. c ..
Как мне это сделать? Я могу сделать "Вопрос" в "SavedQuestion" указателем на "Вопрос" и ошибки go прочь ... однако я не знаю, нужно ли мне это делать или нужно ли это на самом деле поскольку код еще не завершен, чтобы запустить тест ...
Новый суслик сбит с толку ...
Спасибо за любой ввод.