Golang 如何优雅的导出配置呢?

背景

现在有一个conf包,需要在里面添加一些配置,然后在别的包中可能会用到这些配置。

当前实现

现在就是向下面一样,直接设置了全局变量,然后在其它包里也是直接访问,想改的更好看一点。

var (
    A    xxx
    B    xxx
)

想法

定义一个结构体,里面包含所有的配置

type config struct {}

定义一个全局的 config 对象

var Config *config

定义一个 init 函数,对 Config 赋值,这样的话,在其它包里访问 Config 对象就可以获取到需要的配置。

疑问❓

以上是我目前的想法,我是个刚开始工作的菜鸟,不知道有没有更好的方式来实现,求前辈大佬们解惑

讨论数量: 3

静态配置使用配置文件方式,动态配置可以定义

type Config struct {
    data map[string]string
}

func (c *Config) Get(key string) string{
    return c.data[key]
}
func (c *Config) Set(key string,val string){
    c.data[key] = val
}
2年前 评论
type config struct {}
var Config *config

我平时也是用你这种模式,觉得挺方便没什么不好

只是我这里是不用指针的,我想了解一下这个使用指针的意义是什么?

2年前 评论

@renxiaotu 有可能会修改配置,所以传的指针

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!