go语言学习之----读取配置文件的方式toml
发布时间:2020-12-16 18:19:26 所属栏目:大数据 来源:网络整理
导读:最近go语言项目中用到读取配置文件,如下: 使用这个"github.com/BurntSushi/toml" 配置文件如下:conf.toml # idID = 1# nameName = "name1"# weightWeight = 1.7# booksBooks = ["a","b","c"]Sex = true#friend Friend都可以[friend]Age = 32Name = "xio"
最近go语言项目中用到读取配置文件,如下: 使用这个"github.com/BurntSushi/toml" 配置文件如下:conf.toml # id ID = 1 # name Name = "name1" # weight Weight = 1.7 # books Books = ["a","b","c"] Sex = true #friend Friend都可以 [friend] Age = 32 Name = "xio" 代码如下 readConf.go: package conf import ( "fmt" "github.com/BurntSushi/toml" "io/ioutil" "os" ) // person type Person struct { ID uint32 Sex bool Name string Weight float32 Friend *Friends Books []string } // friends type Friends struct { Age int Name string } func ReadConf(fname string) (p *Person,err error) { var ( fp *os.File fcontent []byte ) p = new(Person) // &Person{} if fp,err = os.Open(fname); err != nil { fmt.Println("open error ",err) return } if fcontent,err = ioutil.ReadAll(fp); err != nil { fmt.Println("ReadAll error ",err) return } if err = toml.Unmarshal(fcontent,p); err != nil { fmt.Println("toml.Unmarshal error ",err) return } return } 测试代码如下 readConf_test.go: package conf import "testing" func TestReadConf(t *testing.T) { p,err := ReadConf("./conf.toml") if err != nil { t.Logf("%v",err) } t.Logf("person %v",p) t.Logf("person.friend %v",p.Friend) } 输出结果为: [ `go test -v` | done: 2.6748515s ] === RUN TestReadConf --- PASS: TestReadConf (0.00s) readConf_test.go:11: person &{1 true name1 1.7 0x1218c570 [a b c]} readConf_test.go:12: person.friend &{32 xio} PASS ok goProgram/conf 0.458s 细节点: 1 结构体的成员首字母大写 2 配置文件的配置项须与结构体成员名一样 3 支持bool, int, float , 字符串,字符串数组...等, 也可以包含其他结构体 如[Friend]
附:学习链接 https://item.congci.com/-/content/toml-ji-jian-de-peizhiwenjian-geshi https://github.com/toml-lang/toml (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |