需求: 在项目里使用 config 配置,并且配置可以通过命令行参数获取到。
目前实现方式: 项目目录下有 package config,运行服务 main.go 时通过执行 config.Init() 初始化配置,Init 则从命令行内读取参数初始化配置。
config.go
var (
KafkaTopic string
ConsulAddr string
)
func Init() {
flag.StringVar(&KafkaTopic, "KafkaTopic", "oss", "未指定 KafkaTopic")
flag.Parse()
log.Print(KafkaTopic)
}
// consul 的配置
var ConsulReg = consul.NewRegistry(func(op *registry.Options) {
flag.StringVar(&ConsulAddr, "ConsulAddr", "", "未指定 ConsulAddr")
flag.Parse()
log.Print(ConsulAddr) // 可以拿到命令行参数了
op.Addrs = []string{
ConsulAddr,
}
})
这里使用会报错 Incorrect Usage. flag provided but not defined: -ConsulAddr
尝试了各种姿势,不知道如何修改,google 已经不知道用什么关键词搜索了。 求助一下大佬们。
或者有更好的解决方式吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.