说明:
作为一家“创意+整合+营销”的成都网站建设机构,我们在业内良好的客户口碑。创新互联公司提供从前期的网站品牌分析策划、网站设计、成都网站建设、网站建设、创意表现、网页制作、系统开发以及后续网站营销运营等一系列服务,帮助企业打造创新的互联网品牌经营模式与有效的网络营销方法,创造更大的价值。
格式:
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.shufengxianlan.com/qtweb/news24/409124.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联