介绍
TOML
可以当成.ini
的替代品,旨在成为一个语义明显且易于阅读的最小化配置文件格式,被设计成可以无歧义地映射为哈希表,能很容易地被解析成各种语言中的数据结构。
安装
toml
的解析包有多个,这里安装使用BurntSushi
的toml
包
go get github.com/BurntSushi/toml@latest
文档
更多用法参考官方文档
https://godocs.io/github.com/BurntSushi/toml
示例
golang
的toml
包调用比较简单,读取文件,解析即可
toml示例文件
保存为test.toml
host="127.0.0.1"
读取文件
file, err := os.Open("test.toml")
if err != nil {
panic(err)
}
defer file.Close()
content, fileErr := ioutil.ReadAll(file)
if fileErr != nil {
panic(fileErr)
}
fmt.Println(string(content))
解析
var config struct {
Host string
}
toml.Decode(string(content), &config)
fmt.Println(config)
fmt.Println(config.Host)
完整示例
package main
import (
"fmt"
"github.com/BurntSushi/toml"
"io/ioutil"
"os"
)
func main() {
file, err := os.Open("test1.toml")
if err != nil {
panic(err)
}
defer file.Close()
content, fileErr := ioutil.ReadAll(file)
if fileErr != nil {
panic(fileErr)
}
var config struct {
Host string
}
toml.Decode(string(content), &config)
fmt.Println(config)
fmt.Println(config.Host)
}