Ваш вопрос слишком общий, но, судя по приведенному выше обсуждению, я считаю, что вы пытаетесь загрузить какие-то данные c stati * из базы данных, которая будет использоваться в вашей программе, а это не так. нужно обновить. В этом случае имеет смысл загрузить данные при однократном подключении к базе данных и сохранить их в глобальной переменной в пакете. Например:
package model
var SomeData []SomeType
package main
func main() {
// Load data from the db
model.SomeData = loadedData
// Start the program...
}
Предполагается, что model.SomeData
не изменится во время программы. Если вам нужно, например, периодически перезагружать его, лучшая структура для программы:
package model
var someData []SomeType
var someDataLock sync.RWMutex
func GetData() []SomeType {
someDataLock.RLock()
defer someDataLock.RUnlock()
return someData
}
func SetData(in []SomeType) {
someDataLock.Lock()
defer someDataLock.Unlock()
someData=in
}
Затем вы используете model.SetData
для установки данных и model.GetData
для получения данных в потокобезопасный способ.