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文件的内容:
 










