项目子目录模块如何导出自身?

liuyami · · 173 次点击 · 开始浏览    置顶
代码非常简单,意图就是想自己初始化以及封装viper,我想在 main.go 或其他目录内的文件实现用一下方式访问配置: ``` // 想实现的方式 config.GetString("appName") 或 Cfg.GetString("appName") // 目前之能是这样访问配置 config.Cfg.GetString("appName") ``` *我知道思路错了,可不知道错在哪,从其他的变成经验来说,导出Cfg,并引入命名空间,就可以使用这个导出的变量(对象)了,请指教* 全部源代码如下: ``` // 位置:main.go package main import ( "app/pkg/config" "fmt" ) func main() { fmt.Println("The app name:", config.Cfg.GetString("appName")) } ``` ``` // 位置:/pkg/config/config.go package config import ( "fmt" "github.com/fsnotify/fsnotify" "github.com/spf13/viper" ) var Cfg *viper.Viper func init() { Cfg = viper.New() Cfg.AddConfigPath(".") Cfg.SetConfigName("config") Cfg.SetConfigType("yaml") err := Cfg.ReadInConfig() if err != nil { panic(fmt.Errorf("读取配置文件失败: %s \n", err)) } Cfg.WatchConfig() Cfg.OnConfigChange(func(e fsnotify.Event) { fmt.Println("Config file changed:", e.Name) }) } ```

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

173 次点击  
加入收藏 微博
1 回复  |  直到 2021-06-06 10:40:37
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传