2 Star 15 Fork 1

gookit / config

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
yaml.go 1.69 KB
一键复制 编辑 原始数据 按行查看 历史
inhere 提交于 2019-06-08 12:15 . format codes, and upgrade ini to v2
package main
import (
"fmt"
"github.com/gookit/config/v2"
"github.com/gookit/config/v2/yaml"
)
// go run ./examples/yaml.go
func main() {
config.WithOptions(config.ParseEnv)
// only add decoder
// config.SetDecoder(config.Yaml, yaml.Decoder)
// Or
config.AddDriver(yaml.Driver)
err := config.LoadFiles("testdata/yml_base.yml")
if err != nil {
panic(err)
}
fmt.Printf("config data: \n %#v\n", config.Data())
err = config.LoadFiles("testdata/yml_other.yml")
// config.LoadFiles("testdata/yml_base.yml", "testdata/yml_other.yml")
if err != nil {
panic(err)
}
fmt.Printf("config data: \n %#v\n", config.Data())
fmt.Print("get config example:\n")
name, ok := config.String("name")
fmt.Printf("- get string\n ok: %v, val: %v\n", ok, name)
arr1, ok := config.Strings("arr1")
fmt.Printf("- get array\n ok: %v, val: %#v\n", ok, arr1)
val0, ok := config.String("arr1.0")
fmt.Printf("- get sub-value by path 'arr.index'\n ok: %v, val: %#v\n", ok, val0)
map1, ok := config.StringMap("map1")
fmt.Printf("- get map\n ok: %v, val: %#v\n", ok, map1)
val0, ok = config.String("map1.key")
fmt.Printf("- get sub-value by path 'map.key'\n ok: %v, val: %#v\n", ok, val0)
// can parse env name(ParseEnv: true)
fmt.Printf("get env 'envKey' val: %s\n", config.DefString("envKey", ""))
fmt.Printf("get env 'envKey1' val: %s\n", config.DefString("envKey1", ""))
// set value
config.Set("name", "new name")
name, ok = config.String("name")
fmt.Printf("- set string\n ok: %v, val: %v\n", ok, name)
// if you want export config data
// buf := new(bytes.Buffer)
// _, err = config.DumpTo(buf, config.Yaml)
// if err != nil {
// panic(err)
// }
// fmt.Printf("export config:\n%s", buf.String())
}
Go
1
https://gitee.com/gookit/config.git
git@gitee.com:gookit/config.git
gookit
config
config
master

搜索帮助