goconfig使用解析

參考:https://github.com/Unknwon/go-rock-libraries-showcases/tree/master/lectures/01-goconfiggit

goconfig 簡介

goconfig 是一個由 Go 語言開發的針對 Windows 下常見的 INI 格式的 配置文件解析器。該解析器在涵蓋了全部 INI 文件操做的基礎上,又針對Go 語言實際開發過程當中遇到的一些需求進行了擴展。相對於其它 INI 文件解析器而言,該解析器最大的優點在於 對註釋的極佳 支持;除此以外,支持 多個配置文件覆蓋加載 也是很是特別但好用的功能。github

主要特性

  • 提供與WindowsAPI如出一轍的操做方式 - 支持遞歸讀取分區
  • 支持自增鍵名
  • 支持對註釋的讀與寫操做
  • 支持直接返回指定類型的鍵值 - 支持多個文件覆蓋加載web

    下載安裝

  • 經過gopm安裝:
    gopm get github.com/Unknwon/goconfig
  • 經過goget安裝:
    go get github.com/Unknwon/goconfig
  • API文檔:GoWalkeride

    基本使用方法

    • 加載配置文件:
      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")rem

    高級使用方法

    高級使用方法文檔

  • 多文件覆蓋加載:
    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")get

    總結

    goconfig 包的 API 提供很是全面,用法很是簡單,但核心代碼並很少,各位 同窗有興趣的能夠閱讀其源代碼。string

  • 使用案例:gopm、beego - i18n、beeweb、wetalk、gowalker
相關文章
相關標籤/搜索