代码非常简单,意图就是想自己初始化以及封装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) }) } ```
有疑问加站长微信联系(非本文作者)
