golang 操作ini、yaml、toml
在使用开发过程中,会经常需要对配置文件做操作,目前主流的配置文件有 .ini、.yaml(yml)、.toml格式,本文收集一些用得较多的包做一个总汇记录。
一、操作ini文件
- 方法一
使用https://github.com/go-ini/ini 包来操作ini文件
安装
go get gopkg.in/ini.v1
接口简单介绍
//加载文件
ini.Load(source interface{
}, others ...interface{
}) (*File, error)
//获取section 成功返回Setion结构体指针, 失败返回zero-value
ini.Section(name string) *Section
//s 未Section返回值, 使用string(), uint64, float64()等获取对应的值
s.Key(keyName).string()
例子
package optConfFile
import (
ini "gopkg.in/ini.v1"
)
//IniParser
type IniParser struct {
configReader *ini.File
}
//Load load ini file
func (i *IniParser) Load(configName string) error {
conf, err := ini.Load(configName)
if err != nil {
return err
}
i.configReader = conf
return nil
}
//GetString GetString
func (i *IniParser) GetString(section, key string) string {
if i.configReader == nil {
return ""
}
s := i.configReader.Section(section)
if s == nil {
return ""
}
return s.Key(key).String()
}
//GetUint64 GetUint64
func (i *IniParser) GetUint64(section, key string) uint64 {
if i.configReader == nil {
return 0
}
s := i.configReader.Section(section)
if s == nil {
return 0
}
v, _:= s.Key(key).Uint64()
return v
}
//GetFloat64 GetFloat64
func (i *IniParser) GetFloat64(section, key string) float64 {
if i.configReader == nil {
return 0
}
s