go-bot/config/config.go
liyp cdb74588b2 重构配置加载方式并引入sync.Once确保单例
将配置加载逻辑从全局变量改为使用sync.Once确保单例模式,
优化了config包的结构,现在通过GetConfig方法来获取配置,
而不是直接访问全局变量。这种方式更加线程安全,并且
允许未来在不同包中异步加载配置而无需担心初始化顺序问题。

BREAKING CHANGE: 现在必须使用config.GetConfig()来获取配置,
而不是直接访问config.GlobalConfig。这可能需要更新任何
依赖于GlobalConfig的代码。
2024-06-30 16:12:26 +08:00

24 lines
313 B
Go

package config
import (
"sync"
"github.com/BurntSushi/toml"
)
var (
config map[string]interface{}
once sync.Once
)
func loadConfig() {
if _, err := toml.DecodeFile("config.toml", &config); err != nil {
panic(err)
}
}
func GetConfig() map[string]interface{} {
once.Do(loadConfig)
return config
}