我有一个配置对象,它在启动时根据环境变量初始化一些变量:// init the conf object on startup and fail quickly if there's an environment issue_ = utils.GetConf()这是在我的服务器的 init() 方法中,在我的代码的其他地方,我只是调用 GetConf() 来获取配置对象。我想通过单例模式实现这个配置对象:import ( "fmt" env "github.com/Netflix/go-env")type Conf struct { DBName string `env:"MONGO_INITDB_DATABASE,required=true"` Hostname string `env:"HOSTNAME,required=true"` DBUsername string `env:"MONGO_INITDB_ROOT_USERNAME,required=true"` DBPassword string `env:"MONGO_INITDB_ROOT_PASSWORD,required=true"`}var gConf *Conffunc GetConf() *Conf { if gConf != nil { return gConf } gConf = new(Conf) _, err := env.UnmarshalFromEnviron(gConf) if err != nil { panic(err) } return gConf}因为一开始我没有对 utils.GetConf() 的返回值做任何事情,golang 是否有可能垃圾收集我的配置对象并且我的 gConf 指针最终会指向任何地方?
- 1 回答
- 0 关注
- 82 浏览
添加回答
举报
0/150
提交
取消