goconfig使用解析
參考:ofollow,noindex" target="_blank">https://github.com/Unknwon/go-rock-libraries-showcases/tree/master/lectures/01-goconfig
goconfig 簡介
goconfig 是一個由 Go 語言開發的針對 Windows 下常見的 INI 格式的 配置檔案解析器。該解析器在涵蓋了所有 INI 檔案操作的基礎上,又針對Go 語言實際開發過程中遇到的一些需求進行了擴充套件。相對於其它 INI 檔案解析器而言,該解析器最大的優勢在於 對註釋的極佳 支援;除此之外,支援 多個配置檔案覆蓋載入 也是非常特別但好用的功能。
主要特性
- 提供與WindowsAPI一模一樣的操作方式 -支援遞迴讀取分割槽
- 支援自增鍵名
- 支援對註釋的讀與寫操作
-
支援直接返回指定型別的鍵值 -支援多個檔案覆蓋載入
下載安裝
-
通過gopm安裝:
gopm get github.com/Unknwon/goconfig -
通過goget安裝:
go get github.com/Unknwon/goconfig -
API文件:GoWalker
基本使用方法
-
載入配置檔案:
cfg, err := goconfig.LoadConfigFile("conf.ini")
-
-
基本讀寫操作:
value, err := cfg.GetValue(goconfig.DEFAULT_SECTION,"key_default")
isInsert := cfg.SetValue(goconfig.DEFAULT_SECTION,"key_default", "這是新的值”)
-
註釋讀寫操作:
comment := cfg.GetSectionComments("super")
comment = cfg.GetKeyComments("super", "key_super")
v := cfg.SetKeyComments("super", "key_super", "# 這是新的鍵註釋") v = cfg.SetSectionComments("super", "# 這是新的分割槽註釋")
-
型別轉換讀取:
vInt, err := cfg.Int("must", "int") -
Must系列方法:
vBool := cfg.MustBool("must", "bool") -
刪除指定鍵值:
ok := cfg.DeleteKey("must", "string") -
儲存配置檔案:
err = goconfig.SaveConfigFile(cfg, "conf_save.ini")
高階使用方法
高階使用方法
-
多檔案覆蓋載入:
cfg, err := goconfig.LoadConfigFile("conf.ini", "conf2.ini") err = cfg.AppendFiles("conf3.ini") -
配置檔案過載:
err = cfg.Reload() -
為Must系列方法設定預設值:
vBool := cfg.MustBool("must", "bool404", true) -
遞迴讀取鍵值
- 子孫分割槽覆蓋讀取 -自增鍵名獲取
-
獲取整個分割槽:
高階使用方法
sec, err := cfg.GetSection("auto increment")
總結
goconfig 包的 API 提供非常全面,用法非常簡單,但核心程式碼並不多,各位 同學有興趣的可以閱讀其原始碼。
-
使用案例:
gopm、beego - i18n、beeweb、wetalk、gowalker