1 文件解析器goconfig
go的ini配置文件非常简单,看下面代码即可。
运行之前需要go get。
go get "github.com/Unknwon/goconfig"
package main
import (
"fmt"
"log"
"github.com/Unknwon/goconfig"
)
func main() {
// 1. 加载配置文件到内存。
cfg, err := goconfig.LoadConfigFile("./conf.ini") // 读取后文件关闭了
if err != nil {
log.Fatalf("无法加载配置文件:%s", err)
}
// 2. 获取没有节点的k-v键值对。有两种方法:
// 方法1:节点传空字符串。
userListKey, err := cfg.GetValue("", "USER_LIST")
if err != nil {
fmt.Println(err.Error())
}
fmt.Println(userListKey)
// 方法2:使用goconfig.DEFAULT_SECTION当做节点。
userListKey2, _ := cfg.GetValue(goconfig.DEFAULT_SECTION, "USER_LIST")
fmt.Println(userListKey2)
maxCount := cfg.MustInt("", "MAX_COUNT")
fmt.Println(maxCount)
maxPrice := cfg.MustFloat64("", "MAX_PRICE")
fmt.Println(maxPrice)
isShow := cfg.MustBool("", "IS_SHOW")
fmt.Println(isShow)
// 3. 获取带有节点的k-v键值对
db := cfg.MustValue("test", "dbdns")
fmt.Println(db)
dbProd := cfg.MustValue("prod", "dbdns")
fmt.Println("dbProd: ", dbProd)
}
结果,顺便对比ini文件的内容: