Go操作TOML
TOML
TOML 的全称是 Tom’s Obvious, Minimal Language,意为 Tom 的(语义)明显、(配置)最小化的语言。
我们用JSON配置格式与TOML进行类比。
JSON:
1 | { |
TOML:
1 | name = "Orange" |
详细的介绍参阅官方文档,此处不再赘述。
GO操作TOML
我们使用BurntSushi的toml库进行TOML配置文件的操作。
使用go Module创建一个测试module
1 | $ go mod init github.com/l2m2/go-toml-demo |
安装TOML操作库
1 | $ go get github.com/BurntSushi/toml |
假设我们的配置文件长这样
1 | Age = 25 |
我们需要在Go中定义数据结构如下
1 | type Config1 struct { |
然后这样解析,
1 | func decode1() { |
我们也可以对配置文件中的标签和数据结构的名称进行映射
例如,
1 | type Config2 struct { |
我们把数据结构中的Perfection替换成了Perf,那么打印出的值也变成了下面这样
1 | // main.Config2{Age:25, Cats:[]string{"Cauchy", "Plato"}, Pi:3.14, Perf:[]int(nil), DOB:time.Time{wall:0x0, ext:62688059100, loc:(*time.Location)(nil)}} |
改变配置,写入文件
1 | conf.Age = 34 |
完整代码在这里。