日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame配置管理-常用方法

GetWithEnv

說明:

作為一家“創(chuàng)意+整合+營銷”的成都網(wǎng)站建設機構,我們在業(yè)內良好的客戶口碑。創(chuàng)新互聯(lián)公司提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設計、成都網(wǎng)站建設、網(wǎng)站建設、創(chuàng)意表現(xiàn)、網(wǎng)頁制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營銷運營等一系列服務,幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營模式與有效的網(wǎng)絡營銷方法,創(chuàng)造更大的價值。

  • GetWithEnv方法會先從默認的配置文件中獲取配置數(shù)據(jù),獲取為空的時候,將會去當前的環(huán)境變量中進行獲取。需要注意的是名稱命名轉換規(guī)則:
  • 環(huán)境變量會將名稱轉換為大寫,名稱中的.字符轉換為_字符。
  • 參數(shù)名稱中會將名稱轉換為小寫,名稱中的_字符轉換為.字符。

格式:

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

說明:

?GetWithCmd?方法與?GetWithEnv?方法類似,也是先從默認的配置對象中獲取配置數(shù)據(jù),但是獲取為空的時候,是去命令行中獲取配置信息。

格式:

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

說明:

?MustGetWithCmd?方法與?GetWithCmd?方法類似,該方法只會返回配置內容,一旦內部發(fā)生任何錯誤,將會有?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

說明:

?MustGetWithEnv?方法與?GetWithEnv?方法類似,該方法只會返回配置內容,一旦內部發(fā)生任何錯誤,將會有?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

說明:

?Data?方法從配置對象中獲取配置數(shù)據(jù),組裝成?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

說明:

?MustData?方法從配置對象中獲取配置數(shù)據(jù),組裝成?map[string]interface{}?類型。當該方法內部產(chǎn)生錯誤時不會返回錯誤,而是直接?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

說明:

?Get?方法從配置對象中獲取配置數(shù)據(jù),返回?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

說明:

?MustGet?方法與?Get?類似,也是配置對象中獲取配置數(shù)據(jù),組裝成?gvar?結構,但是返回參數(shù)只有一個:?*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

說明:

?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

說明:

?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}
}

當前題目:創(chuàng)新互聯(lián)GoFrame教程:GoFrame配置管理-常用方法
文章地址:http://www.dlmjj.cn/article/dpccdgo.html