viper
v := viper.New() v.SetConfigType("yaml") v.SetConfigName("conf") v.AddConfigPath("./conf") if err := v.ReadInConfig(); err != nil{ fmt.Println("load failed.err: ", err) } settings := v.AllSettings() for key, val := range settings{ v.SetDefault(key, val) fmt.Println(key, val) } v.WatchConfig() v.OnConfigChange(func(e fsnotify.Event) { fmt.Println("Config file changed:", e.Name) })
packr
box := packr.NewBox("./conf/default") find, _ := box.Find("default.yaml") _ = v.ReadConfig(bytes.NewReader(find))
pflag
pflag.String("ip", "127.0.0.1", "Server running address") pflag.Parse() _ = v.BindPFlags(pflag.CommandLine) fmt.Println(v.GetString("ip")) >>> go run main.go --ip=1
转载: https://www.cnblogs.com/rickiyang/p/11074161.html