package conf import ( "strings" "git.shuncheng.lu/bigthing/gocommon/pkg/internal/util" ) var ( /** 唯一暴露的可变更方法 !运行对外修改 */ MustValue = func(section, key string, defaultVal ...string) string { switch globalDriver { case Local, Apollo: return getConfig().MustValue(section, key, defaultVal...) case Nacos: var result string // 如果nacos获取不到去本地获取,所以没有设置default if config := loadNacosConfig(); config != nil { result = config.GetString(strings.Join([]string{section, key}, ".")) } // 如果远程没有,则加载本地 if result == "" { return getConfig().MustValue(section, key, defaultVal...) } return result default: return "" } } ) func GetString(section, key string, defaultVal ...string) string { return MustValue(section, key, defaultVal...) } func GetUint64(section, key string, defaultVal ...uint64) uint64 { value := MustValue(section, key) return util.String2Uint64(value, defaultVal...) } func GetInt64(section, key string, defaultVal ...int64) int64 { value := MustValue(section, key) return util.String2Int64(value, defaultVal...) } func GetFloat64(section, key string, defaultVal ...float64) float64 { value := MustValue(section, key) return util.String2Float64(value, defaultVal...) } func GetBool(section, key string, defaultVal ...bool) bool { value := MustValue(section, key) return util.String2Bool(value, defaultVal...) }