说明:

作为一家“创意+整合+营销”的成都网站建设机构,我们在业内良好的客户口碑。创新互联公司提供从前期的网站品牌分析策划、网站设计、成都网站建设、网站建设、创意表现、网页制作、系统开发以及后续网站营销运营等一系列服务,帮助企业打造创新的互联网品牌经营模式与有效的网络营销方法,创造更大的价值。
格式:
GetWithEnv(ctx context.Context, pattern string, def ...interface{}) (*gvar.Var, error)示例:
func ExampleConfig_GetWithEnv() {
	var (
		key = `ENV_TEST`
		ctx = gctx.New()
	)
	v, err := g.Cfg().GetWithEnv(ctx, key)
	if err != nil {
		panic(err)
	}
	fmt.Printf("env:%s\n", v)
	if err = genv.Set(key, "gf"); err != nil {
		panic(err)
	}
	v, err = g.Cfg().GetWithEnv(ctx, key)
	if err != nil {
		panic(err)
	}
	fmt.Printf("env:%s", v)
	// Output:
	// env:
	// env:gf
}
说明:
GetWithCmd方法与GetWithEnv方法类似,也是先从默认的配置对象中获取配置数据,但是获取为空的时候,是去命令行中获取配置信息。 
格式:
GetWithCmd(ctx context.Context, pattern string, def ...interface{}) (*gvar.Var, error)示例:
func ExampleConfig_GetWithCmd() {
	var (
		key = `cmd.test`
		ctx = gctx.New()
	)
	v, err := g.Cfg().GetWithCmd(ctx, key)
	if err != nil {
		panic(err)
	}
	fmt.Printf("cmd:%s\n", v)
	// Re-Initialize custom command arguments.
	os.Args = append(os.Args, fmt.Sprintf(`--%s=yes`, key))
	gcmd.Init(os.Args...)
	// Retrieve the configuration and command option again.
	v, err = g.Cfg().GetWithCmd(ctx, key)
	if err != nil {
		panic(err)
	}
	fmt.Printf("cmd:%s", v)
	// Output:
	// cmd:
	// cmd:yes
}
说明:
MustGetWithCmd方法与GetWithCmd方法类似,该方法只会返回配置内容,一旦内部发生任何错误,将会有panic。 
格式:
MustGetWithCmd(ctx context.Context, pattern string, def ...interface{}) *gvar.Var示例:
func ExampleConfig_MustGetWithCmd() {
	var (
		key = `cmd.test`
		ctx = gctx.New()
	)
	v := g.Cfg().MustGetWithCmd(ctx, key)
	fmt.Printf("cmd:%s\n", v)
	// Re-Initialize custom command arguments.
	os.Args = append(os.Args, fmt.Sprintf(`--%s=yes`, key))
	gcmd.Init(os.Args...)
	// Retrieve the configuration and command option again.
	v = g.Cfg().MustGetWithCmd(ctx, key)
	
	fmt.Printf("cmd:%s", v)
	// Output:
	// cmd:
	// cmd:yes
}
说明:
MustGetWithEnv方法与GetWithEnv方法类似,该方法只会返回配置内容,一旦内部发生任何错误,将会有panic。 
格式:
MustGetWithEnv(ctx context.Context, pattern string, def ...interface{}) *gvar.Var示例:
func ExampleConfig_MustGetWithEnv() {
	var (
		key = `ENV_TEST`
		ctx = gctx.New()
	)
	v := g.Cfg().MustGetWithEnv(ctx, key)
	fmt.Printf("env:%s\n", v)
	if err := genv.Set(key, "gf"); err != nil {
		panic(err)
	}
	v = g.Cfg().MustGetWithEnv(ctx, key)
	
	fmt.Printf("env:%s", v)
	// Output:
	// env:
	// env:gf
}
说明:
Data方法从配置对象中获取配置数据,组装成map[string]interface{}类型。 
格式:
Data(ctx context.Context) (data map[string]interface{}, err error)示例:
func ExampleConfig_Data() {
	ctx = gctx.New()
	content := `
v1    = 1
v2    = "true"
v3    = "off"
v4    = "1.23"
array = [1,2,3]
[redis]
    disk  = "127.0.0.1:6379,0"
    cache = "127.0.0.1:6379,1"
`
	c, err := gcfg.New()
	if err != nil{
		panic(err)
	}
	c.GetAdapter().(*gcfg.AdapterFile).SetContent(content)
	data, err := c.Data(ctx)
	if err != nil{
		panic(err)
	}
	fmt.Println(data)
	// Output:
	// map[array:[1 2 3] redis:map[cache:127.0.0.1:6379,1 disk:127.0.0.1:6379,0] v1:1 v2:true v3:off v4:1.23]
}
说明:
MustData方法从配置对象中获取配置数据,组装成map[string]interface{}类型。当该方法内部产生错误时不会返回错误,而是直接panic。 
格式:
MustData(ctx context.Context) map[string]interface{}示例:
func ExampleConfig_MustData() {
	ctx = gctx.New()
	content := `
v1    = 1
v2    = "true"
v3    = "off"
v4    = "1.23"
array = [1,2,3]
[redis]
    disk  = "127.0.0.1:6379,0"
    cache = "127.0.0.1:6379,1"
`
	c, err := gcfg.New()
	if err != nil{
		panic(err)
	}
	c.GetAdapter().(*gcfg.AdapterFile).SetContent(content)
	data := c.MustData(ctx)
	fmt.Println(data)
	// Output:
	// map[array:[1 2 3] redis:map[cache:127.0.0.1:6379,1 disk:127.0.0.1:6379,0] v1:1 v2:true v3:off v4:1.23]
}
说明:
Get方法从配置对象中获取配置数据,返回gvar泛型对象。 
格式:
Get(ctx context.Context, pattern string, def ...interface{}) (*gvar.Var, error)示例:
func ExampleConfig_Get() {
	ctx = gctx.New()
	content := `
v1    = 1
v2    = "true"
v3    = "off"
v4    = "1.23"
array = [1,2,3]
[redis]
    disk  = "127.0.0.1:6379,0"
    cache = "127.0.0.1:6379,1"
`
	c, err := gcfg.New()
	if err != nil{
		panic(err)
	}
	c.GetAdapter().(*gcfg.AdapterFile).SetContent(content)
	data,err := c.Get(ctx,"redis")
	if err != nil {
		panic(err)
	}
	fmt.Println(data)
	// Output:
	// {"cache":"127.0.0.1:6379,1","disk":"127.0.0.1:6379,0"}
}
说明:
MustGet方法与Get类似,也是配置对象中获取配置数据,组装成gvar结构,但是返回参数只有一个:*gvar.Var 
注意:
当配置文件不存在或者是其他error的情况下,会直接panic,需要做好异常捕获措施。 
格式:
MustGet(ctx context.Context, pattern string, def ...interface{}) *gvar.Var示例:
func ExampleConfig_MustGet() {
	ctx = gctx.New()
	content := `
v1    = 1
v2    = "true"
v3    = "off"
v4    = "1.23"
array = [1,2,3]
[redis]
    disk  = "127.0.0.1:6379,0"
    cache = "127.0.0.1:6379,1"
`
	c, err := gcfg.New()
	if err != nil{
		panic(err)
	}
	c.GetAdapter().(*gcfg.AdapterFile).SetContent(content)
	data := c.MustGet(ctx,"redis")
	fmt.Println(data)
	// Output:
	// {"cache":"127.0.0.1:6379,1","disk":"127.0.0.1:6379,0"}
}
说明:
GetAdapter方法是获取当前运行的gcfg适配器信息。
格式:
GetAdapter() Adapter示例:
func ExampleConfig_GetAdapter() {
	c, err := gcfg.New()
	if err != nil{
		panic(err)
	}
	adapter := c.GetAdapter()
	fmt.Println(adapter)
	// Output:
	// &{config.toml 0xc00014d720 0xc000371880 false}
}
说明:
SetAdapter方法是设置当前运行的gcfg适配器信息。
格式:
 SetAdapter(adapter Adapter)示例:
func ExampleConfig_SetAdapter() {
	c, err := gcfg.New()
	if err != nil{
		panic(err)
	}
	adapter := c.GetAdapter()
	c.SetAdapter(adapter)
	fmt.Println(adapter)
	// Output:
	// &{config.toml 0xc00014d720 0xc000371880 false}
}            
                网站标题:创新互联GoFrame教程:GoFrame配置管理-常用方法
                
                当前地址:http://www.csdahua.cn/qtweb/news24/409124.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网