在專案中往往將一些配置資訊放到配置檔案中,這樣在不同的執行環境中,只需修改配置檔案即可。
以下介紹兩種通過第三方包獲取配置檔案的方式
一.通過gopkg.in/ini.v1
go get gopkg.in/ini.v1
1. 配置檔案
test.conf
;[mqtt]
mqtt_hostname = 127.0.0.1
mqtt_port = 8083
mqtt_user = admin
mqtt_pass = 123456
mqtt_keepalive = 60
mqtt_timeout = 3
2. 獲取配置檔案並轉成結構體
package main
import (
"log"
"gopkg.in/ini.v1"
)var filepath ="d:/goproject/src/test/test.conf"
type config struct
func main()
log.println(config)}
//讀取配置檔案並轉成結構體
func readconfig(path string) (config, error)
conf.blockmode = false
err = conf.mapto(&config) //解析成結構體
if err != nil
return config, nil}
執行結果:
二、github.com/larspensjo/config 讀取
ini配置檔案
1.獲取第三方包:
go get github.com/larspensjo/config
2.配置檔案
config.ini
[mqtt] #一級選項section
#下面為option
mqtt_hostname = 127.0.0.1
mqtt_port = 8083
mqtt_user = admin
mqtt_pass = 123456
mqtt_keepalive = 60
mqtt_timeout = 3
3. 獲取配置檔案並轉成
////支援命令列輸入格式為-configfile=name, 預設為config.ini
//配置檔案一般獲取到都是型別
configfile = flag.string("configfile","config.ini","general configuration file")
topic = make(map[string]string))
func main()
if cfg.hassection("mqtt") }}
} log.println(topic)
}4. 執行和結果:
由於需要指定配置檔案,故需要在命令列中執行
golang 讀取配置檔案vipper
讀取配置檔案的,有toml和vipper兩種好用的方法,toml的方法見 最大的特點就是要為配置檔案構建相對應的結構體,有點囧,現在講乙個vipper。init 初始化配置 func init v viper.new v.setconfigtype yaml v.setconfigname env ...
Golang讀取配置檔案 ini 資訊
package main import fmt io ioutil regexp strings func checkerr e error 函式名 getcfg tag string,cfg string string 參 數 tag string 引數的名稱 cfg string 配置資訊字串 ...
Golang庫 viper讀取配置檔案
viper是由steve francia編寫的開源配置解決方案,也是cobra的作者,我們來看下viper的功能 go get github.com spf13 vipergithub位址 在讀取配置檔案中我們將會演示viper的集中使用方式 我們以.yml檔案為例 這裡的配置檔案讀取可以使用相對路...