У меня есть пакет с именем server
, который содержит структуру Settings
.Он содержит такой код:
type Settings struct {
foobar String
}
func example() {
readSettings := Settings{}
err := storage.GetSettings(&readSettings)
// Problem: at this point, readSettings has not been changed!
}
Моя проблема в том, что readSettings не обновляется.
В пакете storage
есть функция GetSettings
:
func GetSettings(settingsToPopulate interface{}) error {
file, _ := os.Open("/tmp/settings.json")
var decodedSettings interface{}
json.NewDecoder(file).Decode(&decodedSettings)
settingsToPopulate = decodedSettings
return nil
}
Мои ограничения заключаются в том, что структура Settings
должна оставаться в server
, а метод ввода-вывода GetSettings
сильно сохраняется в storage
.
Я не могу просто сделать GetSettings
примите структуру Settings
, потому что это вызовет циклическую зависимость.
Как я могу обновить ссылочный параметр GetSettings
?