日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

GetWithEnv

說明:

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

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

格式:

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?方法類似,也是先從默認(rèn)的配置對(duì)象中獲取配置數(shù)據(jù),但是獲取為空的時(shí)候,是去命令行中獲取配置信息。

格式:

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?方法類似,該方法只會(huì)返回配置內(nèi)容,一旦內(nèi)部發(fā)生任何錯(cuò)誤,將會(huì)有?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?方法類似,該方法只會(huì)返回配置內(nèi)容,一旦內(nèi)部發(fā)生任何錯(cuò)誤,將會(huì)有?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?方法從配置對(duì)象中獲取配置數(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?方法從配置對(duì)象中獲取配置數(shù)據(jù),組裝成?map[string]interface{}?類型。當(dāng)該方法內(nèi)部產(chǎn)生錯(cuò)誤時(shí)不會(huì)返回錯(cuò)誤,而是直接?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?方法從配置對(duì)象中獲取配置數(shù)據(jù),返回?gvar?泛型對(duì)象。

格式:

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?類似,也是配置對(duì)象中獲取配置數(shù)據(jù),組裝成?gvar?結(jié)構(gòu),但是返回參數(shù)只有一個(gè):?*gvar.Var ?

注意:

當(dāng)配置文件不存在或者是其他?error?的情況下,會(huì)直接?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?方法是獲取當(dāng)前運(yùn)行的?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?方法是設(shè)置當(dāng)前運(yùn)行的?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}
}

分享標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame配置管理-常用方法
鏈接分享:http://m.5511xx.com/article/dpccdgo.html