小白表示,真的是搞不懂的东西,一用就会出问题
为什么这么简单的 toml解析,都能出不来也是服了。
这样说吧,已经有了开源的解析库,只要调用一下,就可以解析了,可是就是读不出来数据,你说奇怪吗?
就是还是格式不对呗。
标准库:
github: https://github.com/BurntSushi/toml
安装:go get github.com/BurntSushi/toml
使用,我给两种方法,一种就是DecodeFile直接解,第二种,Unmarshal,是我调试用的
1.
if _, err := toml.DecodeFile(cpath, >estcf); err != nil {
fmt.Printf(“toml.DecodeFile error \n”, err)
return dirs, err
}
2.
func readConfig() {
var fcontent []byte
var gtestcf gtest
var fpath string = “./gtest.toml”
fcontent, err := ioutil.ReadFile(fpath)
if err != nil {
fmt.Printf("ioutil.ReadFile error \n", err)
}
fmt.Printf("fcontent is %v\n", fcontent)
toml.Unmarshal(fcontent, >estcf)
fmt.Printf("toml.Unmarshal gtestis %v \n", gtestcf)
}
经过调试发现了toml 格式 和结构体命名 规律
大家感受一下:
聪明的你们肯定看出规律了吧,我不想多说,调的烦了
两点注意:
一个是 结构 ,整个文件是 一层{} 你定义的其他结构就在二层 {}
这个文件现在是 { title, dirconf{projdir }}
要读取,就给整个文件定义一个 结构体,gtest,然后才是你自定义的其他结构 如dirconf
二是名字对应关系,dirconf 是gtest结构下 变量名,而不是结构体名,也就是你自定义的结构体随意,但是变量名要和toml文件中的【xxx】相同
很坑,我是没有想到,要调了才知道,ε=(´ο`*)))唉,小白就是白痴
|
请发表评论