這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
golang讀取ini設定檔
一、安裝config配置解釋包:
go get github.com/larspensjo/config
二、載入其包及代碼設定
package mainimport ("flag""fmt""github.com/larspensjo/config""log""runtime")var (configFile = flag.String("configfile", "config.ini", "General configuration file"))//topic listvar TOPIC = make(map[string]string)func main() {runtime.GOMAXPROCS(runtime.NumCPU())flag.Parse()//set config file stdcfg, err := config.ReadDefault(*configFile)if err != nil {log.Fatalf("Fail to find", *configFile, err)}//set config file std End//Initialized topic from the configurationif cfg.HasSection("topicArr") {section, err := cfg.SectionOptions("topicArr")if err == nil {for _, v := range section {options, err := cfg.String("topicArr", v)if err == nil {TOPIC[v] = options}}}}//Initialized topic from the configuration ENDfmt.Println(TOPIC)fmt.Println(TOPIC["debug"])}
三、設定檔
檔案名稱:config.ini[topicArr]addr = 192.168.1.100debug = truelogin = LoginRequest[other]t1 = 0000337t2 = admin
四、簡介:
4.1首先通過config.ReadDefault(*configFile)開啟設定檔
4.2 然後判斷設定檔中一級標籤名是否存在if cfg.HasSection("topicArr") {}
4.2讀取一級標籤中的所有子標籤cfg.SectionOptions()
4.3迴圈一下子標籤,將子標籤中的值記錄在一個map中(TOPIC為全域變數),以備後面使用
for _, v := range section { options, err := cfg.String("topicArr", v) if err == nil { TOPIC[v] = options }}
根據自己的喜好來配吧